{ "version": 3, "sections": [ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/noop-template.ts"],"sourcesContent":["export function noop(\n strings: TemplateStringsArray,\n ...keys: readonly string[]\n) {\n const lastIndex = strings.length - 1\n return (\n strings.slice(0, lastIndex).reduce((p, s, i) => p + s + keys[i], '') +\n strings[lastIndex]\n )\n}\n"],"names":[],"mappings":";;;AAAO,SAAS,KACd,OAA6B;IAC7B,IAAA,IAAA,OAAA,UAAA,QAAA,AAAG,OAAH,UAAA,OAAA,IAAA,OAAA,QAAA,OAAA,GAAA,OAAA,MAAA,OAAA;QAAG,KAAH,OAAA,KAAA,SAAA,CAAA,KAA0B;IAAD;IAEzB,MAAM,YAAY,QAAQ,SAAS;IACnC,OACE,QAAQ,MAAM,GAAG,WAAW,OAAO,CAAC,GAAG,GAAG,IAAM,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,MACjE,OAAO,CAAC,UAAU;AAEtB"}}, {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 18, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/styles/CssReset.tsx"],"sourcesContent":["import { noop as css } from '../helpers/noop-template'\n\nexport function CssReset() {\n return (\n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,SAAS;IACd,OACE,uJAAC;kBACE,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6VL,CAAC;;AAGP"}}, {"offset": {"line": 380, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 384, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/hooks/usePagination.ts"],"sourcesContent":["import * as React from 'react'\n\nexport type PaginationActions = {\n previous: (e?: React.KeyboardEvent | React.MouseEvent) => void\n next: (e?: React.KeyboardEvent | React.MouseEvent) => void\n setIdx: React.Dispatch>\n}\n\nexport function usePagination(\n items: T[],\n defaultIdx: number = 0\n): [T | null, PaginationActions, number] {\n const [idx, setIdx] = React.useState(defaultIdx)\n\n React.useEffect(() => {\n if (idx >= items.length && idx > 0) {\n setIdx(items.length - 1)\n }\n }, [idx, items.length])\n\n const currentItem = React.useMemo(() => {\n return items[idx] ?? null\n }, [items, idx])\n\n const actions = React.useMemo(\n () => ({\n previous: (e?: React.KeyboardEvent | React.MouseEvent) => {\n e?.preventDefault()\n setIdx((idx) => Math.max(0, idx - 1))\n },\n next: (e?: React.KeyboardEvent | React.MouseEvent) => {\n e?.preventDefault()\n setIdx((idx) => Math.max(0, Math.min(items.length - 1, idx + 1)))\n },\n setIdx,\n }),\n [items.length]\n )\n\n return [currentItem, actions, idx]\n}\n"],"names":[],"mappings":";;;;;;AAQO,SAAS,cACd,KAAU;QACV,aAAA,iEAAqB;IAErB,MAAM,CAAC,KAAK,OAAO,GAAG,uIAAM,SAAS;IAErC,uIAAM,UAAU;QACd,IAAI,OAAO,MAAM,UAAU,MAAM,GAAG;YAClC,OAAO,MAAM,SAAS;QACxB;IACF,GAAG;QAAC;QAAK,MAAM;KAAO;IAEtB,MAAM,cAAc,uIAAM,QAAQ;QAChC,OAAO,KAAK,CAAC,IAAI,IAAI;IACvB,GAAG;QAAC;QAAO;KAAI;IAEf,MAAM,UAAU,uIAAM,QACpB,IAAM,CAAC;YACL,UAAU,CAAC;gBACT,GAAG;gBACH,OAAO,CAAC,MAAQ,KAAK,IAAI,GAAG,MAAM;YACpC;YACA,MAAM,CAAC;gBACL,GAAG;gBACH,OAAO,CAAC,MAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,GAAG,MAAM;YAC/D;YACA;QACF,CAAC,GACD;QAAC,MAAM;KAAO;IAGhB,OAAO;QAAC;QAAa;QAAS;KAAI;AACpC"}}, {"offset": {"line": 426, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 430, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/clsx.ts"],"sourcesContent":["/*\nMIT License\n\nCopyright (c) Luke Edwards (lukeed.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n// This file is based on https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n// It's been edited for the needs of this project\n// See the LICENSE at the top of the file\n\nexport type TruthyClassValue =\n | ClassArray\n | ClassDictionary\n | string\n | number\n | boolean\nexport type ClassValue = TruthyClassValue | null | undefined\nexport type ClassDictionary = Record\nexport type ClassArray = ClassValue[]\n\nfunction toVal(mix: TruthyClassValue) {\n let k,\n y,\n str = ''\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((y = toVal(mix[k]))) {\n str && (str += ' ')\n str += y\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ')\n str += k\n }\n }\n }\n }\n\n return str\n}\n\nexport function clsx(...inputs: ClassValue[]) {\n let i = 0,\n tmp,\n x,\n str = ''\n while (i < inputs.length) {\n if ((tmp = inputs[i++])) {\n if ((x = toVal(tmp))) {\n str && (str += ' ')\n str += x\n }\n }\n }\n return str\n}\n"],"names":[],"mappings":";;;AA0BA,SAAS,MAAM,GAAqB;IAClC,IAAI,GACF,GACA,MAAM;IAER,IAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,UAAU;QACtD,OAAO;IACT,OAAO,IAAI,OAAO,QAAQ,UAAU;QAClC,IAAI,MAAM,QAAQ,MAAM;YACtB,IAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAK;gBAC/B,IAAI,GAAG,CAAC,EAAE,EAAE;oBACV,IAAK,IAAI,MAAM,GAAG,CAAC,EAAE,GAAI;wBACvB,OAAO,CAAC,OAAO,GAAG;wBAClB,OAAO;oBACT;gBACF;YACF;QACF,OAAO;YACL,IAAK,KAAK,IAAK;gBACb,IAAI,GAAG,CAAC,EAAE,EAAE;oBACV,OAAO,CAAC,OAAO,GAAG;oBAClB,OAAO;gBACT;YACF;QACF;IACF;IAEA,OAAO;AACT;AAEO,SAAS;IAAK,IAAA,IAAA,OAAA,UAAA,QAAA,AAAG,SAAH,UAAA,OAAA,OAAA,GAAA,OAAA,MAAA,OAAA;QAAG,OAAH,QAAA,SAAA,CAAA,KAAuB;IAAD;IACzC,IAAI,IAAI,GACN,KACA,GACA,MAAM;IACR,MAAO,IAAI,OAAO,OAAQ;QACxB,IAAK,MAAM,MAAM,CAAC,IAAI,EAAG;YACvB,IAAK,IAAI,MAAM,MAAO;gBACpB,OAAO,CAAC,OAAO,GAAG;gBAClB,OAAO;YACT;QACF;IACF;IACA,OAAO;AACT"}}, {"offset": {"line": 473, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 477, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Terminal/styles.tsx"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\n\nconst styles = css`\n .terminal {\n display: flex;\n overflow-y: hidden;\n\n border-radius: var(--size-gap-half);\n background-color: var(--color-ansi-bg);\n color: var(--color-ansi-fg);\n }\n\n .terminal::selection,\n .terminal *::selection {\n background-color: var(--color-ansi-selection);\n }\n\n .terminal * {\n color: inherit;\n background-color: transparent;\n font-family: var(--font-mono);\n }\n\n .terminal > * {\n margin: 0;\n padding: calc(var(--size-gap) + var(--size-gap-half))\n calc(var(--size-gap-double) + var(--size-gap-half));\n }\n\n .terminal pre {\n width: 100%;\n white-space: pre-wrap;\n word-break: break-word;\n overflow-y: scroll;\n }\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCnB,CAAC"}}, {"offset": {"line": 518, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 522, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Terminal/Terminal.tsx"],"sourcesContent":["import Anser from '@vercel/turbopack-next/compiled/anser'\nimport * as React from 'react'\n\nexport type TerminalProps = { content: string }\n\nexport function Terminal({ content }: TerminalProps) {\n const decoded = React.useMemo(() => {\n return Anser.ansiToJson(content, {\n json: true,\n use_classes: true,\n remove_empty: true,\n })\n }, [content])\n\n return (\n
\n
\n        {decoded.map((entry, index) => (\n          \n            {entry.content}\n          \n        ))}\n      
\n
\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;AAKO,SAAS,SAAS,KAA0B;QAA1B,EAAE,QAAO,EAAiB,GAA1B;IACvB,MAAM,UAAU,uIAAM,QAAQ;QAC5B,OAAO,+GAAM,WAAW,SAAS;YAC/B,MAAM;YACN,aAAa;YACb,cAAc;QAChB;IACF,GAAG;QAAC;KAAQ;IAEZ,OACE,uJAAC;QAAI,sBAAoB;QAAC,WAAU;kBAClC,uJAAC;sBACE,QAAQ,IAAI,CAAC,OAAO,QACnB,uJAAC;oBAEC,OAAO;wBACL,OAAO,MAAM,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG;wBAC/C,GAAI,MAAM,eAAe,SACrB;4BAAE,YAAY;wBAAI,IAClB,MAAM,eAAe,WACrB;4BAAE,WAAW;wBAAS,IACtB,SAAS;oBACf;8BAEC,MAAM;mBAVF,CAAC,eAAe,EAAE,MAAM,CAAC;;;AAgB1C"}}, {"offset": {"line": 561, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 565, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 574, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 578, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/hooks/context.tsx"],"sourcesContent":["/*\nMIT License\n\nCopyright (c) 2018-2022, React Training LLC\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n// This file is based on https://github.com/reach/reach-ui/blob/v0.18.0/packages/utils/src/context.tsx\n// It's been edited for the needs of this project\n// See the LICENSE at the top of the file\n\nimport * as React from 'react'\n\ntype ContextProvider = React.FC>\n\nexport function createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType\n): [\n ContextProvider,\n (callerComponentName: string) => ContextValueType\n] {\n const Ctx = React.createContext(defaultContext)\n\n function Provider(props: React.PropsWithChildren) {\n const { children, ...context } = props\n const value = React.useMemo(\n () => context,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(context)\n ) as ContextValueType\n return {children}\n }\n\n function useContext(callerComponentName: string) {\n const context = React.useContext(Ctx)\n if (context) {\n return context\n }\n if (defaultContext) {\n return defaultContext\n }\n throw Error(\n `${callerComponentName} must be rendered inside of a ${rootComponentName} component.`\n )\n }\n\n Ctx.displayName = `${rootComponentName}Context`\n Provider.displayName = `${rootComponentName}Provider`\n return [Provider, useContext]\n}\n"],"names":[],"mappings":";;;;;;;;AAoBO,SAAS,cACd,iBAAyB,EACzB,cAAiC;IAKjC,MAAM,MAAM,uIAAM,cAA4C;IAE9D,SAAS,SAAS,KAAgD;QAChE,MAAM,EAAE,SAAQ,EAAE,GAAG,SAAS,GAAG;QACjC,MAAM,QAAQ,uIAAM,QAClB,IAAM,SAEN,OAAO,OAAO;QAEhB,OAAO,uJAAC,IAAI;YAAS,OAAO;sBAAQ;;IACtC;IAEA,SAAS,WAAW,mBAA2B;QAC7C,MAAM,UAAU,uIAAM,WAAW;QACjC,IAAI,SAAS;YACX,OAAO;QACT;QACA,IAAI,gBAAgB;YAClB,OAAO;QACT;QACA,MAAM,MACJ,CAAC,EAAE,oBAAoB,8BAA8B,EAAE,kBAAkB,WAAW,CAAC;IAEzF;IAEA,IAAI,cAAc,CAAC,EAAE,kBAAkB,OAAO,CAAC;IAC/C,SAAS,cAAc,CAAC,EAAE,kBAAkB,QAAQ,CAAC;IACrD,OAAO;QAAC;QAAU;KAAW;AAC/B"}}, {"offset": {"line": 613, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 617, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Tabs/index.tsx"],"sourcesContent":["// TODO: replace with `@react/tabs`\n\nimport * as React from 'react'\nimport { noop as css } from '../../helpers/noop-template'\nimport { createContext } from '../../hooks/context'\nimport { clsx } from '../../helpers/clsx'\n\ntype Merge = Omit & P2\n\ntype PropsWithAs = As extends ''\n ? { as: keyof JSX.IntrinsicElements }\n : As extends React.JSXElementConstructor\n ? Merge\n : As extends keyof JSX.IntrinsicElements\n ? Merge\n : never\n\ntype TabRefs = Record\n\ntype TabsContextType = {\n selectedId: string\n registerTabRef: (id: string, el: HTMLElement | null) => void\n onSelectTab: (id: string) => void\n}\n\nconst [TabsProvider, useTabsContext] = createContext('Tabs')\n\nexport type TabsProps = {\n defaultId: string\n selectedId?: string\n onChange?: (id: string) => void\n children: React.ReactNode\n}\n\nexport function Tabs({\n defaultId,\n selectedId: controlledId,\n onChange,\n children,\n}: TabsProps) {\n const [selectedId, setSelectedId] = React.useState(controlledId ?? defaultId)\n const [shouldCheckId, setShouldShouldCheckId] = React.useState(false)\n\n const tabRefs = React.useRef({})\n\n const onSelectTabUnchecked = React.useCallback(\n (id: string) => {\n onChange && onChange(id)\n setSelectedId(id)\n },\n [onChange]\n )\n\n const onSelectTab = React.useCallback(\n (id: string) => {\n if (id == selectedId) return\n\n const tab = tabRefs.current[id]\n if (!tab) {\n console.error(\n `Tried selecting invalid tab id \"${id}\", only ${JSON.stringify(\n Object.keys(tabRefs.current)\n )} are available.`\n )\n return\n }\n\n setTimeout(() => {\n tab.focus()\n }, 0)\n\n onSelectTabUnchecked(id)\n },\n [selectedId, onSelectTabUnchecked]\n )\n\n const registerTabRef = React.useCallback(\n (id: string, el: HTMLElement | null) => {\n if (el == null) {\n delete tabRefs.current[id]\n setShouldShouldCheckId(true)\n } else {\n tabRefs.current[id] = el\n }\n },\n []\n )\n\n React.useEffect(() => {\n if (!shouldCheckId) return\n\n const currentTabRef = tabRefs.current[selectedId]\n if (currentTabRef == null) {\n const availableIds = Object.keys(tabRefs.current)\n if (availableIds.length > 0) {\n onSelectTabUnchecked(availableIds[0])\n }\n }\n\n setShouldShouldCheckId(false)\n }, [shouldCheckId, selectedId, onSelectTabUnchecked])\n\n React.useEffect(() => {\n if (controlledId && controlledId != selectedId) {\n onSelectTabUnchecked(controlledId)\n }\n }, [controlledId, selectedId, onSelectTabUnchecked])\n\n return (\n \n {children}\n \n )\n}\n\nexport type TabListProps = {\n className?: string\n children: React.ReactNode\n}\n\nexport function TabList({ className, children }: TabListProps) {\n return (\n
\n {children}\n
\n )\n}\n\nexport type TabProps = {\n id: string\n next?: string\n prev?: string\n className?: string\n children: React.ReactNode\n}\n\nexport function Tab({\n id,\n next,\n prev,\n className,\n children,\n ...rest\n}: TabProps & React.HTMLProps) {\n const { selectedId, registerTabRef, onSelectTab } = useTabsContext('Tab')\n const selected = id == selectedId\n\n const click = React.useCallback(\n (ev: React.MouseEvent) => {\n ev.preventDefault()\n onSelectTab(id)\n },\n [id, onSelectTab]\n )\n\n const keyDown = React.useCallback(\n (ev: React.KeyboardEvent) => {\n if (prev && ev.key === 'ArrowLeft') {\n ev.stopPropagation()\n onSelectTab(prev)\n } else if (next && ev.key === 'ArrowRight') {\n ev.stopPropagation()\n onSelectTab(next)\n }\n },\n [next, prev, onSelectTab]\n )\n\n const ref = React.useCallback(\n (el: HTMLElement | null) => registerTabRef(id, el),\n [id, registerTabRef]\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport type TabPanelPropsBase = {\n id: string\n className?: string\n}\n\nexport function TabPanel<\n As extends\n | keyof JSX.IntrinsicElements\n | React.JSXElementConstructor = 'div'\n>({\n as: Comp = 'div',\n id,\n className,\n children,\n ...rest\n}: PropsWithAs) {\n const { selectedId } = useTabsContext('Tab')\n const selected = id == selectedId\n\n return (\n \n {children}\n \n )\n}\n\nexport const styles = css`\n .tab-panel[data-hidden='true'] {\n display: none;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,MAAM,CAAC,cAAc,eAAe,GAAG,mIAA+B;AAS/D,SAAS,KAAK,KAKT;QALS,EACnB,UAAS,EACT,YAAY,aAAY,EACxB,SAAQ,EACR,SAAQ,EACE,GALS;IAMnB,MAAM,CAAC,YAAY,cAAc,GAAG,uIAAM,SAAS,gBAAgB;IACnE,MAAM,CAAC,eAAe,uBAAuB,GAAG,uIAAM,SAAS;IAE/D,MAAM,UAAU,uIAAM,OAAgB,CAAC;IAEvC,MAAM,uBAAuB,uIAAM,YACjC,CAAC;QACC,YAAY,SAAS;QACrB,cAAc;IAChB,GACA;QAAC;KAAS;IAGZ,MAAM,cAAc,uIAAM,YACxB,CAAC;QACC,IAAI,MAAM,YAAY;QAEtB,MAAM,MAAM,QAAQ,OAAO,CAAC,GAAG;QAC/B,IAAI,CAAC,KAAK;YACR,QAAQ,MACN,CAAC,gCAAgC,EAAE,GAAG,QAAQ,EAAE,KAAK,UACnD,OAAO,KAAK,QAAQ,UACpB,eAAe,CAAC;YAEpB;QACF;QAEA,WAAW;YACT,IAAI;QACN,GAAG;QAEH,qBAAqB;IACvB,GACA;QAAC;QAAY;KAAqB;IAGpC,MAAM,iBAAiB,uIAAM,YAC3B,CAAC,IAAY;QACX,IAAI,MAAM,MAAM;YACd,OAAO,QAAQ,OAAO,CAAC,GAAG;YAC1B,uBAAuB;QACzB,OAAO;YACL,QAAQ,OAAO,CAAC,GAAG,GAAG;QACxB;IACF,GACA,EAAE;IAGJ,uIAAM,UAAU;QACd,IAAI,CAAC,eAAe;QAEpB,MAAM,gBAAgB,QAAQ,OAAO,CAAC,WAAW;QACjD,IAAI,iBAAiB,MAAM;YACzB,MAAM,eAAe,OAAO,KAAK,QAAQ;YACzC,IAAI,aAAa,SAAS,GAAG;gBAC3B,qBAAqB,YAAY,CAAC,EAAE;YACtC;QACF;QAEA,uBAAuB;IACzB,GAAG;QAAC;QAAe;QAAY;KAAqB;IAEpD,uIAAM,UAAU;QACd,IAAI,gBAAgB,gBAAgB,YAAY;YAC9C,qBAAqB;QACvB;IACF,GAAG;QAAC;QAAc;QAAY;KAAqB;IAEnD,OACE,uJAAC;QACC,YAAY;QACZ,gBAAgB;QAChB,aAAa;kBAEZ;;AAGP;AAOO,SAAS,QAAQ,KAAqC;QAArC,EAAE,UAAS,EAAE,SAAQ,EAAgB,GAArC;IACtB,OACE,uJAAC;QAAI,MAAK;QAAU,WAAW,wHAAK,YAAY;kBAC7C;;AAGP;AAUO,SAAS,IAAI,KAO4B;QAP5B,EAClB,GAAE,EACF,KAAI,EACJ,KAAI,EACJ,UAAS,EACT,SAAQ,EACR,GAAG,MAC2C,GAP5B;IAQlB,MAAM,EAAE,WAAU,EAAE,eAAc,EAAE,YAAW,EAAE,GAAG,eAAe;IACnE,MAAM,WAAW,MAAM;IAEvB,MAAM,QAAQ,uIAAM,YAClB,CAAC;QACC,GAAG;QACH,YAAY;IACd,GACA;QAAC;QAAI;KAAY;IAGnB,MAAM,UAAU,uIAAM,YACpB,CAAC;QACC,IAAI,QAAQ,GAAG,QAAQ,aAAa;YAClC,GAAG;YACH,YAAY;QACd,OAAO,IAAI,QAAQ,GAAG,QAAQ,cAAc;YAC1C,GAAG;YACH,YAAY;QACd;IACF,GACA;QAAC;QAAM;QAAM;KAAY;IAG3B,MAAM,MAAM,uIAAM,YAChB,CAAC,KAA2B,eAAe,IAAI,KAC/C;QAAC;QAAI;KAAe;IAGtB,OACE,uJAAC;QACE,GAAG,IAAI;QACR,MAAK;QACL,KAAK;QACL,iBAAe;QACf,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;QACf,MAAK;QACL,iBAAe;QACf,UAAU,WAAW,IAAI,CAAC;QAC1B,WAAW,wHAAK,OAAO;QACvB,SAAS;QACT,WAAW;kBAEV;;AAGP;AAOO,SAAS,SAId,KAMmC;QANnC,EACA,IAAI,OAAO,KAAK,CAAA,EAChB,GAAE,EACF,UAAS,EACT,SAAQ,EACR,GAAG,MACgC,GANnC;IAOA,MAAM,EAAE,WAAU,EAAE,GAAG,eAAe;IACtC,MAAM,WAAW,MAAM;IAEvB,OACE,uJAAC;QACE,GAAG,IAAI;QACR,IAAI;QACJ,mBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC;QAC5B,MAAK;QACL,WAAW,wHAAK,aAAa;QAC7B,eAAa,CAAC;kBAEb;;AAGP;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;AAI1B,CAAC"}}, {"offset": {"line": 771, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 775, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/DialogHeaderTabList.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { noop as css } from '../../helpers/noop-template'\nimport { clsx } from '../../helpers/clsx'\nimport { TabList } from '../Tabs'\n\nexport type DialogHeaderTabListProps = {\n className?: string\n children: React.ReactNode\n}\n\nexport function DialogHeaderTabList({\n className,\n children,\n}: DialogHeaderTabListProps) {\n return (\n \n {children}\n \n )\n}\n\nexport const styles = css`\n .dialog-header > .dialog-header-tab-list {\n padding: 0;\n border: none !important;\n }\n\n .dialog-header-tab-list {\n height: 100%;\n display: flex;\n justify-content: start;\n align-content: center;\n border-bottom: 0;\n }\n\n .dialog-header-tab-list > .tab {\n display: flex;\n align-items: center;\n\n padding-left: calc(var(--local-padding) + var(--size-gap));\n padding-right: calc(var(--local-padding) + var(--size-gap));\n\n /* slight offset for the severity top border on the tabs */\n padding-top: calc(var(--local-padding) + var(--size-border));\n padding-bottom: calc(var(--local-padding) - var(--size-border));\n\n height: 100%;\n\n border-top: none;\n border-bottom: var(--border);\n border-left: var(--border-half);\n border-right: var(--border-half);\n\n color: var(--color-text-dim);\n background-color: transparent;\n }\n\n .dialog-header-tab-list > .tab:first-child {\n border-left: none;\n }\n\n .tab::after {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n\n border-top: var(--size-border-double) solid transparent;\n\n content: ' ';\n }\n\n .dialog-header-tab-list > .tab:hover {\n background-color: var(--color-bg-secondary-hover);\n }\n\n .dialog-header-tab-list > .tab[aria-selected='true'] {\n color: var(--color-text);\n background-color: var(--color-bg);\n\n border-bottom-color: transparent;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;AAWO,SAAS,oBAAoB,KAGT;QAHS,EAClC,UAAS,EACT,SAAQ,EACiB,GAHS;IAIlC,OACE;QAAS,WAAW,wHAAK,0BAA0B;kBAChD;;AAGP;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6D1B,CAAC"}}, {"offset": {"line": 857, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 861, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/BaseIcon.tsx"],"sourcesContent":["import { SVGProps, ReactNode } from 'react'\n\nconst defaultAttributes: Partial> = {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n}\n\nexport interface IconProps extends Partial> {\n size?: string | number\n}\n\nexport const BaseIcon = ({\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n ...rest\n}: IconProps & { children: ReactNode }) => {\n return (\n \n )\n}\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,oBAAsD;IAC1D,OAAO;IACP,SAAS;IACT,MAAM;IACN,QAAQ;IACR,aAAa;IACb,eAAe;IACf,gBAAgB;AAClB;AAMO,MAAM,WAAW;QAAC,EACvB,OAAQ,eAAc,EACtB,MAAO,GAAE,EACT,aAAc,EAAC,EACf,GAAG,MACiC;IACpC,OACE,uJAAC;QACE,GAAG,iBAAiB;QACrB,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,aAAa;QACZ,GAAG,IAAI;;AAGd"}}, {"offset": {"line": 887, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 891, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/PackageX.tsx"],"sourcesContent":["import { BaseIcon, IconProps } from './BaseIcon'\n\nexport const PackageX = (props: IconProps) => {\n return (\n \n \n \n \n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,WAAW,CAAC;IACvB,OACE;QAAW,GAAG,KAAK;;YACjB,uJAAC;gBAAK,GAAE;;YACR,uJAAC;gBAAK,GAAE;;YACR,uJAAC;gBAAS,QAAO;;YACjB,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;;YACjC,uJAAC;gBAAK,GAAE;;;;AAGd"}}, {"offset": {"line": 924, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 928, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/ExternalLink.tsx"],"sourcesContent":["import { BaseIcon, IconProps } from './BaseIcon'\n\nexport const ExternalLink = (props: IconProps) => {\n return (\n \n \n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,eAAe,CAAC;IAC3B,OACE;QAAW,GAAG,KAAK;;YACjB,uJAAC;gBAAK,GAAE;;YACR,uJAAC;gBAAS,QAAO;;YACjB,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;;;;AAGvC"}}, {"offset": {"line": 955, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 959, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/CloseIcon.tsx"],"sourcesContent":["import { BaseIcon, IconProps } from './BaseIcon'\n\nexport const CloseIcon = (props: IconProps) => {\n return (\n \n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,YAAY,CAAC;IACxB,OACE;QAAW,GAAG,KAAK;;YACjB,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAI,IAAG;gBAAI,IAAG;;YAC/B,uJAAC;gBAAK,IAAG;gBAAI,IAAG;gBAAI,IAAG;gBAAK,IAAG;;;;AAGrC"}}, {"offset": {"line": 986, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 990, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/AlertTriangle.tsx"],"sourcesContent":["import { BaseIcon, IconProps } from './BaseIcon'\n\nexport const AlertTriangle = (props: IconProps) => {\n return (\n \n \n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,gBAAgB,CAAC;IAC5B,OACE;QAAW,GAAG,KAAK;;YACjB,uJAAC;gBAAK,GAAE;;YACR,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAI,IAAG;gBAAK,IAAG;;YAChC,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;gBAAQ,IAAG;;;;AAG1C"}}, {"offset": {"line": 1020, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1024, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/icons/AlertOctagon.tsx"],"sourcesContent":["import { BaseIcon, IconProps } from './BaseIcon'\n\nexport const AlertOctagon = (props: IconProps) => {\n return (\n \n \n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,eAAe,CAAC;IAC3B,OACE;QAAW,GAAG,KAAK;;YACjB,uJAAC;gBAAQ,QAAO;;YAChB,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAI,IAAG;gBAAK,IAAG;;YAChC,uJAAC;gBAAK,IAAG;gBAAK,IAAG;gBAAK,IAAG;gBAAQ,IAAG;;;;AAG1C"}}, {"offset": {"line": 1054, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1058, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 1079, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1083, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/DialogHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { clsx } from '../../helpers/clsx'\nimport { CloseIcon } from '../../icons'\nimport { noop as css } from '../../helpers/noop-template'\n\nexport type DialogHeaderProps = {\n close?: () => void\n className?: string\n children: React.ReactNode\n}\n\nexport function DialogHeader({\n children,\n className,\n close,\n}: DialogHeaderProps) {\n const buttonClose = React.useRef(null)\n\n React.useEffect(() => {\n if (buttonClose.current == null) {\n return\n }\n\n const root = buttonClose.current.getRootNode()\n const d = self.document\n\n function handler(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.stopPropagation()\n if (root instanceof ShadowRoot) {\n const a = root.activeElement\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur()\n return\n }\n }\n\n if (close) {\n close()\n }\n }\n }\n\n root.addEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.addEventListener('keydown', handler)\n }\n return function () {\n root.removeEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.removeEventListener('keydown', handler)\n }\n }\n }, [close, buttonClose])\n\n return (\n
\n {children}\n
 
\n {close ? (\n \n \n \n \n \n ) : null}\n
\n )\n}\n\nexport const styles = css`\n .dialog-content > .dialog-header {\n flex-shrink: 0;\n }\n\n .dialog-header {\n --local-padding: var(--size-gap-big);\n\n display: flex;\n flex-direction: row;\n align-content: center;\n align-items: center;\n justify-content: space-between;\n\n height: calc(\n var(--size-icon) + var(--local-padding) * 2 + var(--border) * 2\n );\n\n background-color: var(--color-bg-secondary);\n }\n\n .dialog-header > * {\n height: 100%;\n padding: var(--local-padding);\n\n border-bottom: var(--border);\n }\n\n .dialog-header > *:not(:first-child):not(.close-button) {\n border-left: var(--border-half);\n }\n\n .dialog-header\n > *:not(:last-child):not(:nth-last-child(2):before(.close-button)) {\n border-right: var(--border-half);\n }\n\n .dialog-header > .filler {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n align-self: stretch;\n padding-left: 0;\n padding-right: 0;\n }\n\n .dialog-header > .filler > div {\n display: flex;\n flex: 1 0 auto;\n flex-grow: 1;\n align-self: stretch;\n padding: var(--local-padding);\n padding-left: 0;\n padding-right: 0;\n border-bottom: var(--border);\n }\n\n .dialog-header > button:last-of-type {\n border: none;\n border-bottom: var(--border);\n\n background-color: transparent;\n appearance: none;\n }\n\n .dialog-header > button:last-of-type > span {\n display: flex;\n opacity: 0.4;\n transition: opacity 0.25s ease;\n }\n\n .dialog-header > button:last-of-type:hover > span {\n opacity: 0.7;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAWO,SAAS,aAAa,KAIT;QAJS,EAC3B,SAAQ,EACR,UAAS,EACT,MAAK,EACa,GAJS;IAK3B,MAAM,cAAc,uIAAM,OAAiC;IAE3D,uIAAM,UAAU;QACd,IAAI,YAAY,WAAW,MAAM;YAC/B;QACF;QAEA,MAAM,OAAO,YAAY,QAAQ;QACjC,MAAM,IAAI,KAAK;QAEf,SAAS,QAAQ,CAAgB;YAC/B,IAAI,EAAE,QAAQ,UAAU;gBACtB,EAAE;gBACF,IAAI,gBAAgB,YAAY;oBAC9B,MAAM,IAAI,KAAK;oBACf,IAAI,KAAK,MAAM,YAAY,WAAW,aAAa,aAAa;wBAC9D,EAAE;wBACF;oBACF;gBACF;gBAEA,IAAI,OAAO;oBACT;gBACF;YACF;QACF;QAEA,KAAK,iBAAiB,WAAW;QACjC,IAAI,SAAS,GAAG;YACd,EAAE,iBAAiB,WAAW;QAChC;QACA,OAAO;YACL,KAAK,oBAAoB,WAAW;YACpC,IAAI,SAAS,GAAG;gBACd,EAAE,oBAAoB,WAAW;YACnC;QACF;IACF,GAAG;QAAC;QAAO;KAAY;IAEvB,OACE,wJAAC;QAAI,2BAAyB;QAAC,WAAW,wHAAK,iBAAiB;;YAC7D;YACD,uJAAC;gBAAI,WAAU;0BAAS;;YACvB,QACC,uJAAC;gBACC,KAAK;gBACL,MAAK;gBACL,SAAS;gBACT,cAAW;gBACX,WAAU;0BAEV,uJAAC;oBAAK,eAAY;8BAChB;;iBAGF;;;AAGV;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0E1B,CAAC"}}, {"offset": {"line": 1234, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1238, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/DialogContent.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { clsx } from '../../helpers/clsx'\nimport { noop as css } from '../../helpers/noop-template'\n\nexport type DialogContentProps = {\n className?: string\n children?: React.ReactNode\n} & React.HTMLProps\n\nexport function DialogContent({\n className,\n children,\n ...rest\n}: DialogContentProps) {\n return (\n
\n {children}\n
\n )\n}\n\nexport const styles = css`\n .dialog-content {\n display: flex;\n flex-direction: column;\n\n overflow-y: hidden;\n border: none;\n margin: 0;\n padding: 0;\n\n height: 100%;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;AAUO,SAAS,cAAc,KAIT;QAJS,EAC5B,UAAS,EACT,SAAQ,EACR,GAAG,MACgB,GAJS;IAK5B,OACE,uJAAC;QAAI,WAAW,wHAAK,kBAAkB;QAAa,GAAG,IAAI;kBACxD;;AAGP;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;AAY1B,CAAC"}}, {"offset": {"line": 1270, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1274, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/DialogBody.tsx"],"sourcesContent":["import * as React from 'react'\nimport { clsx } from '../../helpers/clsx'\nimport { noop as css } from '../../helpers/noop-template'\n\nexport type DialogBodyProps = {\n className?: string\n children?: React.ReactNode\n} & React.HTMLProps\n\nexport function DialogBody({ children, className, ...rest }: DialogBodyProps) {\n return (\n
\n {children}\n
\n )\n}\n\nexport const styles = css`\n .dialog-content > .dialog-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--size-gap-double);\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;AASO,SAAS,WAAW,KAAiD;QAAjD,EAAE,SAAQ,EAAE,UAAS,EAAE,GAAG,MAAuB,GAAjD;IACzB,OACE,uJAAC;QAAI,WAAW,wHAAK,eAAe;QAAa,GAAG,IAAI;kBACrD;;AAGP;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;AAM1B,CAAC"}}, {"offset": {"line": 1300, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1304, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/hooks/use-on-click-outside.ts"],"sourcesContent":["import * as React from 'react'\n\nexport function useOnClickOutside(\n el: Node | null,\n handler: ((e: MouseEvent | TouchEvent) => void) | undefined\n) {\n React.useEffect(() => {\n if (el == null || handler == null) {\n return\n }\n\n const listener = (e: MouseEvent | TouchEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target as Element)) {\n return\n }\n\n handler(e)\n }\n\n const root = el.getRootNode()\n root.addEventListener('mousedown', listener as EventListener)\n root.addEventListener('touchstart', listener as EventListener)\n return function () {\n root.removeEventListener('mousedown', listener as EventListener)\n root.removeEventListener('touchstart', listener as EventListener)\n }\n }, [handler, el])\n}\n"],"names":[],"mappings":";;;;;;AAEO,SAAS,kBACd,EAAe,EACf,OAA2D;IAE3D,uIAAM,UAAU;QACd,IAAI,MAAM,QAAQ,WAAW,MAAM;YACjC;QACF;QAEA,MAAM,WAAW,CAAC;YAEhB,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,SAAoB;gBAC3C;YACF;YAEA,QAAQ;QACV;QAEA,MAAM,OAAO,GAAG;QAChB,KAAK,iBAAiB,aAAa;QACnC,KAAK,iBAAiB,cAAc;QACpC,OAAO;YACL,KAAK,oBAAoB,aAAa;YACtC,KAAK,oBAAoB,cAAc;QACzC;IACF,GAAG;QAAC;QAAS;KAAG;AAClB"}}, {"offset": {"line": 1333, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1337, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/Dialog.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useOnClickOutside } from '../../hooks/use-on-click-outside'\nimport { clsx } from '../../helpers/clsx'\nimport { noop as css } from '../../helpers/noop-template'\n\nexport type DialogProps = {\n 'aria-labelledby': string\n 'aria-describedby': string\n onClose?: (e: MouseEvent | TouchEvent) => void\n className?: string\n children?: React.ReactNode | undefined\n}\n\nexport function Dialog({\n children,\n onClose,\n className,\n ...props\n}: DialogProps) {\n const [dialog, setDialog] = React.useState(null)\n const onDialog = React.useCallback(\n (node: React.SetStateAction) => {\n setDialog(node)\n },\n []\n )\n useOnClickOutside(dialog, onClose)\n\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n React.useEffect(() => {\n if (dialog == null) {\n return\n }\n\n const root = dialog.getRootNode()\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return\n }\n const shadowRoot = root\n\n function handler(e: KeyboardEvent) {\n const el = shadowRoot.activeElement\n if (\n e.key === 'Enter' &&\n el instanceof HTMLElement &&\n el.getAttribute('role') === 'link'\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n el.click()\n }\n }\n\n shadowRoot.addEventListener('keydown', handler as EventListener)\n return () =>\n shadowRoot.removeEventListener('keydown', handler as EventListener)\n }, [dialog])\n\n return (\n \n {children}\n \n )\n}\n\nexport const styles = css`\n .dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n outline: none;\n background: white;\n border-radius: var(--size-gap);\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\n rgba(0, 0, 0, 0.25);\n max-height: calc(100% - 56px);\n overflow-y: hidden;\n }\n\n @media (max-height: 812px) {\n .dialog-overlay {\n max-height: calc(100% - 15px);\n }\n }\n\n @media (min-width: 576px) {\n .dialog {\n max-width: 540px;\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\n }\n }\n\n @media (min-width: 768px) {\n .dialog {\n max-width: 720px;\n }\n }\n\n @media (min-width: 992px) {\n .dialog {\n max-width: 960px;\n }\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAcO,SAAS,OAAO,KAKT;QALS,EACrB,SAAQ,EACR,QAAO,EACP,UAAS,EACT,GAAG,OACS,GALS;IAMrB,MAAM,CAAC,QAAQ,UAAU,GAAG,uIAAM,SAAgC;IAClE,MAAM,WAAW,uIAAM,YACrB,CAAC;QACC,UAAU;IACZ,GACA,EAAE;IAEJ,4JAAkB,QAAQ;IAI1B,uIAAM,UAAU;QACd,IAAI,UAAU,MAAM;YAClB;QACF;QAEA,MAAM,OAAO,OAAO;QAEpB,IAAI,CAAC,CAAC,gBAAgB,UAAU,GAAG;YACjC;QACF;QACA,MAAM,aAAa;QAEnB,SAAS,QAAQ,CAAgB;YAC/B,MAAM,KAAK,WAAW;YACtB,IACE,EAAE,QAAQ,WACV,cAAc,eACd,GAAG,aAAa,YAAY,QAC5B;gBACA,EAAE;gBACF,EAAE;gBAEF,GAAG;YACL;QACF;QAEA,WAAW,iBAAiB,WAAW;QACvC,OAAO,IACL,WAAW,oBAAoB,WAAW;IAC9C,GAAG;QAAC;KAAO;IAEX,OACE,uJAAC;QACC,KAAK;QACL,UAAU,CAAC;QACX,MAAK;QACL,mBAAiB,KAAK,CAAC,kBAAkB;QACzC,oBAAkB,KAAK,CAAC,mBAAmB;QAC3C,cAAW;QACX,WAAW,wHAAK,UAAU;kBAEzB;;AAGP;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwC1B,CAAC"}}, {"offset": {"line": 1433, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1437, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Dialog/styles.ts"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\nimport { styles as dialogStyles } from './Dialog'\nimport { styles as bodyStyles } from './DialogBody'\nimport { styles as contentStyles } from './DialogContent'\nimport { styles as headerStyles } from './DialogHeader'\nimport { styles as tabListStyles } from './DialogHeaderTabList'\n\nconst styles = css`\n ${dialogStyles}\n ${bodyStyles}\n ${contentStyles}\n ${headerStyles}\n ${tabListStyles}\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOA,MAAM,SAAS,mIAAG,CAAC;EACjB,4IAAe;EACf,gJAAa;EACb,mJAAgB;EAChB,kJAAe;EACf,yJAAgB;AAClB,CAAC"}}, {"offset": {"line": 1461, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1465, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 1491, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1495, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/LeftRightDialogHeader/styles.ts"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\n\nconst styles = css`\n .dialog-left-right {\n white-space: nowrap;\n }\n\n .dialog-left-right > button {\n --bg-alpha: 0.1;\n --fg-alpha: 1;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: calc(var(--size-gap-double) + var(--size-gap));\n height: calc(var(--size-gap-double) + var(--size-gap));\n font-size: 0;\n border: none;\n\n background-color: hsla(var(--color-base), var(--bg-alpha));\n color: hsla(var(--color-base), var(--fg-alpha));\n\n cursor: pointer;\n transition: background-color 0.25s ease;\n }\n\n .dialog-left-right[data-severity='error'] > button {\n --color-base: var(--color-error-bright-hsl);\n }\n\n .dialog-left-right[data-severity='warning'] > button {\n --color-base: var(--color-warning-bright-hsl);\n }\n\n .dialog-left-right > button:hover {\n --bg-alpha: 0.2;\n }\n\n .dialog-left-right > button:disabled {\n --bg-alpha: 0.1;\n --fg-alpha: 0.4;\n cursor: not-allowed;\n }\n\n .dialog-left-right > button:first-of-type {\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\n margin-right: 1px;\n }\n\n .dialog-left-right > button:last-of-type {\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\n }\n\n .dialog-left-right > button > svg {\n width: auto;\n height: var(--size-icon-small);\n }\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDnB,CAAC"}}, {"offset": {"line": 1559, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1563, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { clsx } from '../../helpers/clsx'\n\nexport type LeftRightDialogHeaderProps = {\n hidden?: boolean\n previous?: (() => void) | null\n next?: (() => void) | null\n severity: 'warning' | 'error'\n className?: string\n children: React.ReactNode\n}\n\nexport function LeftRightDialogHeader({\n hidden = false,\n previous,\n next,\n severity,\n className,\n children,\n}: LeftRightDialogHeaderProps) {\n const buttonLeft = React.useRef(null)\n const buttonRight = React.useRef(null)\n\n const [nav, setNav] = React.useState(null)\n const onNav = React.useCallback((el: HTMLElement) => {\n setNav(el)\n }, [])\n\n React.useEffect(() => {\n if (nav == null || hidden) {\n return\n }\n\n const root = nav.getRootNode()\n const d = self.document\n\n function handler(e: KeyboardEvent) {\n if (e.key === 'ArrowLeft') {\n e.stopPropagation()\n if (buttonLeft.current) {\n buttonLeft.current.focus()\n }\n previous && previous()\n } else if (e.key === 'ArrowRight') {\n e.stopPropagation()\n if (buttonRight.current) {\n buttonRight.current.focus()\n }\n next && next()\n }\n }\n\n root.addEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.addEventListener('keydown', handler)\n }\n return function () {\n root.removeEventListener('keydown', handler as EventListener)\n if (root !== d) {\n d.removeEventListener('keydown', handler)\n }\n }\n }, [hidden, nav, next, previous])\n\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n React.useEffect(() => {\n if (nav == null) {\n return\n }\n\n const root = nav.getRootNode()\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement\n\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur()\n }\n } else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur()\n }\n }\n }\n }, [nav, next, previous])\n\n return (\n \n {children}\n  \n \n \n \n \n \n \n \n )\n}\n\nfunction ArrowLeft() {\n return (\n \n \n \n )\n}\n\nfunction ArrowRight() {\n return (\n \n \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;;;AAYO,SAAS,sBAAsB,KAOT;QAPS,EACpC,QAAS,MAAK,EACd,SAAQ,EACR,KAAI,EACJ,SAAQ,EACR,UAAS,EACT,SAAQ,EACmB,GAPS;IAQpC,MAAM,aAAa,uIAAM,OAAiC;IAC1D,MAAM,cAAc,uIAAM,OAAiC;IAE3D,MAAM,CAAC,KAAK,OAAO,GAAG,uIAAM,SAA6B;IACzD,MAAM,QAAQ,uIAAM,YAAY,CAAC;QAC/B,OAAO;IACT,GAAG,EAAE;IAEL,uIAAM,UAAU;QACd,IAAI,OAAO,QAAQ,QAAQ;YACzB;QACF;QAEA,MAAM,OAAO,IAAI;QACjB,MAAM,IAAI,KAAK;QAEf,SAAS,QAAQ,CAAgB;YAC/B,IAAI,EAAE,QAAQ,aAAa;gBACzB,EAAE;gBACF,IAAI,WAAW,SAAS;oBACtB,WAAW,QAAQ;gBACrB;gBACA,YAAY;YACd,OAAO,IAAI,EAAE,QAAQ,cAAc;gBACjC,EAAE;gBACF,IAAI,YAAY,SAAS;oBACvB,YAAY,QAAQ;gBACtB;gBACA,QAAQ;YACV;QACF;QAEA,KAAK,iBAAiB,WAAW;QACjC,IAAI,SAAS,GAAG;YACd,EAAE,iBAAiB,WAAW;QAChC;QACA,OAAO;YACL,KAAK,oBAAoB,WAAW;YACpC,IAAI,SAAS,GAAG;gBACd,EAAE,oBAAoB,WAAW;YACnC;QACF;IACF,GAAG;QAAC;QAAQ;QAAK;QAAM;KAAS;IAIhC,uIAAM,UAAU;QACd,IAAI,OAAO,MAAM;YACf;QACF;QAEA,MAAM,OAAO,IAAI;QAEjB,IAAI,gBAAgB,YAAY;YAC9B,MAAM,IAAI,KAAK;YAEf,IAAI,YAAY,MAAM;gBACpB,IAAI,WAAW,WAAW,MAAM,WAAW,SAAS;oBAClD,WAAW,QAAQ;gBACrB;YACF,OAAO,IAAI,QAAQ,MAAM;gBACvB,IAAI,YAAY,WAAW,MAAM,YAAY,SAAS;oBACpD,YAAY,QAAQ;gBACtB;YACF;QACF;IACF,GAAG;QAAC;QAAK;QAAM;KAAS;IAExB,OACE,wJAAC;QACC,KAAK;QACL,iBAAe;QACf,WAAW,wHAAK,qBAAqB;;YAEpC;YAAS;YAEV,uJAAC;gBACC,KAAK;gBACL,MAAK;gBACL,UAAU,YAAY,OAAO,OAAO;gBACpC,iBAAe,YAAY,OAAO,OAAO;gBACzC,SAAS,YAAY;0BAErB,uJAAC;;YAEH,uJAAC;gBACC,KAAK;gBACL,MAAK;gBACL,UAAU,QAAQ,OAAO,OAAO;gBAChC,iBAAe,QAAQ,OAAO,OAAO;gBACrC,SAAS,QAAQ;0BAEjB,uJAAC;;;;AAIT;AAEA,SAAS;IACP,OACE,uJAAC;QACC,SAAQ;QACR,MAAK;QACL,QAAO;QACP,aAAY;QACZ,eAAc;QACd,gBAAe;QACf,OAAM;kBAEN,uJAAC;YAAK,GAAE;;;AAGd;AAEA,SAAS;IACP,OACE,uJAAC;QACC,SAAQ;QACR,MAAK;QACL,QAAO;QACP,aAAY;QACZ,eAAc;QACd,gBAAe;QACf,OAAM;kBAEN,uJAAC;YAAK,GAAE;;;AAGd"}}, {"offset": {"line": 1694, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1698, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 1707, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1711, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/container/TurbopackIssue.tsx"],"sourcesContent":["import { Issue } from '@vercel/turbopack-dev/types/protocol'\n\nimport { LeftRightDialogHeader } from '../components/LeftRightDialogHeader'\nimport { DialogBody, DialogBodyProps } from '../components/Dialog'\nimport { Terminal } from '../components/Terminal'\nimport { noop as css } from '../helpers/noop-template'\nimport { clsx } from '../helpers/clsx'\nimport { usePagination } from '../hooks/usePagination'\n\ntype TurbopackIssuesDialogBodyProps = {\n items: Issue[]\n message: string\n severity: 'error' | 'warning'\n 'data-hidden'?: boolean\n}\n\nexport function TurbopackIssuesDialogBody({\n items: issues,\n message,\n severity,\n 'data-hidden': hidden = false,\n className,\n ...rest\n}: TurbopackIssuesDialogBodyProps & Omit) {\n const [activeIssue, { previous, next }, activeIdx] = usePagination(issues)\n\n const hasIssues = issues.length > 0\n\n if (!hasIssues || !activeIssue) {\n return null\n }\n\n const activeIssueIsError = ['bug', 'fatal', 'error'].includes(\n activeIssue.severity\n )\n\n return (\n \n
\n

{message}

\n
\n\n \n {activeIssue.title}\n \n\n \n {activeIssueIsError && (\n
\n

\n \n This error occurred during the build process and can only be\n dismissed by fixing the error.\n \n

\n
\n )}\n \n )\n}\n\nexport const styles = css`\n .issues-body > .terminal {\n margin-top: var(--size-gap-double);\n }\n\n .issues-body > footer {\n margin-top: var(--size-gap);\n }\n\n .issues-body > footer > p {\n margin: 0;\n }\n\n .issues-body > footer > small {\n color: #757575;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAgBO,SAAS,0BAA0B,KAO2B;QAP3B,EACxC,OAAO,OAAM,EACb,QAAO,EACP,SAAQ,EACR,eAAe,SAAS,KAAK,CAAA,EAC7B,UAAS,EACT,GAAG,MACgE,GAP3B;IAQxC,MAAM,CAAC,aAAa,EAAE,SAAQ,EAAE,KAAI,EAAE,EAAE,UAAU,GAAG,wIAAc;IAEnE,MAAM,YAAY,OAAO,SAAS;IAElC,IAAI,CAAC,aAAa,CAAC,aAAa;QAC9B,OAAO;IACT;IAEA,MAAM,qBAAqB;QAAC;QAAO;QAAS;KAAQ,CAAC,SACnD,YAAY;IAGd,OACE;QACG,GAAG,IAAI;QACR,eAAa;QACb,WAAW,wHAAK,eAAe;;YAE/B,wJAAC;gBAAI,WAAU;;oBACb,uJAAC;wBAAG,IAAG;kCAAkC;;oBACzC;wBACE,QAAQ;wBACR,UAAU,YAAY,IAAI,WAAW;wBACrC,MAAM,YAAY,OAAO,SAAS,IAAI,OAAO;wBAC7C,UAAU;kCAEV,wJAAC;;gCACC,uJAAC;8CAAM,YAAY;;gCAAS;gCAAI,uJAAC;8CAAM,OAAO;;;;;;;YAKpD,uJAAC;gBACC,IAAG;gBACH,iBAAe,qBAAqB,UAAU;0BAE7C,YAAY;;YAGf;gBAAU,SAAS,YAAY;;YAC9B,sBACC,uJAAC;0BACC,uJAAC;8BACC,uJAAC;kCAAM;;;;;;AASnB;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;AAgB1B,CAAC"}}, {"offset": {"line": 1808, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1812, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/stack-frame.ts"],"sourcesContent":["import { StackFrame } from '@vercel/turbopack-next/compiled/stacktrace-parser'\n\nimport { OriginalStackFrameResponse } from '../../middleware'\n\nexport type OriginalStackFrame =\n | {\n error: true\n reason: string\n external: false\n expanded: false\n sourceStackFrame: StackFrame\n originalStackFrame: null\n originalCodeFrame: null\n }\n | {\n error: false\n reason: null\n external: false\n expanded: boolean\n sourceStackFrame: StackFrame\n originalStackFrame: StackFrame\n originalCodeFrame: string | null\n }\n | {\n error: false\n reason: null\n external: true\n expanded: false\n sourceStackFrame: StackFrame\n originalStackFrame: null\n originalCodeFrame: null\n }\n\nexport function getOriginalStackFrame(\n source: StackFrame,\n type: 'server' | 'edge-server' | null,\n errorMessage: string\n): Promise {\n async function _getOriginalStackFrame(): Promise {\n const params = new URLSearchParams()\n params.append('isServer', String(type === 'server'))\n params.append('isEdgeServer', String(type === 'edge-server'))\n params.append('errorMessage', errorMessage)\n for (const key in source) {\n params.append(key, ((source as any)[key] ?? '').toString())\n }\n\n const controller = new AbortController()\n const tm = setTimeout(() => controller.abort(), 3000)\n const res = await self\n .fetch(\n `${\n process.env.__NEXT_ROUTER_BASEPATH ?? ''\n }/__nextjs_original-stack-frame?${params.toString()}`,\n {\n signal: controller.signal,\n }\n )\n .finally(() => {\n clearTimeout(tm)\n })\n if (!res.ok || res.status === 204) {\n return Promise.reject(new Error(await res.text()))\n }\n\n const body: OriginalStackFrameResponse = await res.json()\n return {\n error: false,\n reason: null,\n external: false,\n expanded: !(\n /* collapsed */\n (\n source.file?.includes('node_modules') ??\n body.originalStackFrame?.file?.includes('node_modules') ??\n true\n )\n ),\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame ?? null,\n }\n }\n\n if (!source.file?.startsWith(location.origin)) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n })\n }\n\n return _getOriginalStackFrame().catch((err: Error) => ({\n error: true,\n reason: err?.message ?? err?.toString() ?? 'Unknown Error',\n external: false,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n }))\n}\n\nexport function getOriginalStackFrames(\n frames: StackFrame[],\n type: 'server' | 'edge-server' | null,\n errorMessage: string\n) {\n return Promise.all(\n frames.map((frame) => getOriginalStackFrame(frame, type, errorMessage))\n )\n}\n\nexport function getFrameSource(frame: StackFrame): string {\n let str = ''\n try {\n const u = new URL(frame.file!)\n\n // Strip the origin for same-origin scripts.\n if (\n typeof globalThis !== 'undefined' &&\n globalThis.location?.origin !== u.origin\n ) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === 'null') {\n str += u.protocol\n } else {\n str += u.origin\n }\n }\n\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n str += u.pathname\n str += ' '\n } catch {\n str += (frame.file ?? '(unknown)') + ' '\n }\n\n if (frame.lineNumber != null) {\n if (frame.column != null) {\n str += `(${frame.lineNumber}:${frame.column}) `\n } else {\n str += `(${frame.lineNumber}) `\n }\n }\n return str.slice(0, -1)\n}\n"],"names":[],"mappings":";;;;;;;AAiCO,SAAS,sBACd,MAAkB,EAClB,IAAqC,EACrC,YAAoB;IAEpB,eAAe;QACb,MAAM,SAAS,IAAI;QACnB,OAAO,OAAO,YAAY,OAAO,SAAS;QAC1C,OAAO,OAAO,gBAAgB,OAAO,SAAS;QAC9C,OAAO,OAAO,gBAAgB;QAC9B,IAAK,MAAM,OAAO,OAAQ;YACxB,OAAO,OAAO,KAAK,CAAC,AAAC,MAAc,CAAC,IAAI,IAAI,EAAE,EAAE;QAClD;QAEA,MAAM,aAAa,IAAI;QACvB,MAAM,KAAK,WAAW,IAAM,WAAW,SAAS;QAChD,MAAM,MAAM,MAAM,KACf,MACC,CAAC,EACC,qJAAQ,IAAI,0BAA0B,GACvC,+BAA+B,EAAE,OAAO,WAAW,CAAC,EACrD;YACE,QAAQ,WAAW;QACrB,GAED,QAAQ;YACP,aAAa;QACf;QACF,IAAI,CAAC,IAAI,MAAM,IAAI,WAAW,KAAK;YACjC,OAAO,QAAQ,OAAO,IAAI,MAAM,MAAM,IAAI;QAC5C;QAEA,MAAM,OAAmC,MAAM,IAAI;QACnD,OAAO;YACL,OAAO;YACP,QAAQ;YACR,UAAU;YACV,UAAU,CAER,CACE,OAAO,MAAM,SAAS,mBACtB,KAAK,oBAAoB,MAAM,SAAS,mBACxC,IACF;YAEF,kBAAkB;YAClB,oBAAoB,KAAK;YACzB,mBAAmB,KAAK,qBAAqB;QAC/C;IACF;IAEA,IAAI,CAAC,OAAO,MAAM,WAAW,SAAS,SAAS;QAC7C,OAAO,QAAQ,QAAQ;YACrB,OAAO;YACP,QAAQ;YACR,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;QACrB;IACF;IAEA,OAAO,yBAAyB,MAAM,CAAC,MAAe,CAAC;YACrD,OAAO;YACP,QAAQ,KAAK,WAAW,KAAK,cAAc;YAC3C,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;QACrB,CAAC;AACH;AAEO,SAAS,uBACd,MAAoB,EACpB,IAAqC,EACrC,YAAoB;IAEpB,OAAO,QAAQ,IACb,OAAO,IAAI,CAAC,QAAU,sBAAsB,OAAO,MAAM;AAE7D;AAEO,SAAS,eAAe,KAAiB;IAC9C,IAAI,MAAM;IACV,IAAI;QACF,MAAM,IAAI,IAAI,IAAI,MAAM;QAGxB,IACE,OAAO,eAAe,eACtB,WAAW,UAAU,WAAW,EAAE,QAClC;YAGA,IAAI,EAAE,WAAW,QAAQ;gBACvB,OAAO,EAAE;YACX,OAAO;gBACL,OAAO,EAAE;YACX;QACF;QAIA,OAAO,EAAE;QACT,OAAO;IACT,EAAE,OAAM;QACN,OAAO,CAAC,MAAM,QAAQ,WAAW,IAAI;IACvC;IAEA,IAAI,MAAM,cAAc,MAAM;QAC5B,IAAI,MAAM,UAAU,MAAM;YACxB,OAAO,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;QACjD,OAAO;YACL,OAAO,CAAC,CAAC,EAAE,MAAM,WAAW,EAAE,CAAC;QACjC;IACF;IACA,OAAO,IAAI,MAAM,GAAG,CAAC;AACvB"}}, {"offset": {"line": 1898, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1902, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/magic-identifier.ts"],"sourcesContent":["// see vercel/turbo crates/turbopack-ecmascript/src/magic_identifier.rs for the rust version\n\nfunction decodeHex(hexStr: string): string {\n if (hexStr.trim() === '') {\n throw new Error(\"can't decode empty hex\")\n }\n\n const num = parseInt(hexStr, 16)\n if (isNaN(num)) {\n throw new Error(`invalid hex: \\`${hexStr}\\``)\n }\n\n return String.fromCodePoint(num)\n}\n\nconst enum Mode {\n Text,\n Underscore,\n Hex,\n LongHex,\n}\n\nconst DECODE_REGEX = /^__TURBOPACK__([a-zA-Z0-9_$]+)__$/\n\nfunction decodeMagicIdentifier(identifier: string): string {\n const matches = identifier.match(DECODE_REGEX)\n if (!matches) {\n return identifier\n }\n\n const inner = matches[1]\n\n let output = ''\n\n let mode: Mode = Mode.Text\n let buffer = ''\n for (let i = 0; i < inner.length; i++) {\n const char = inner[i]\n\n if (mode === Mode.Text) {\n if (char === '_') {\n mode = Mode.Underscore\n } else if (char === '$') {\n mode = Mode.Hex\n } else {\n output += char\n }\n } else if (mode === Mode.Underscore) {\n if (char === '_') {\n output += ' '\n mode = Mode.Text\n } else if (char === '$') {\n output += '_'\n mode = Mode.Hex\n } else {\n output += '_'\n output += char\n mode = Mode.Text\n }\n } else if (mode === Mode.Hex) {\n if (buffer.length === 2) {\n output += decodeHex(buffer)\n buffer = ''\n }\n\n if (char === '_') {\n if (buffer !== '') {\n throw new Error(`invalid hex: \\`${buffer}\\``)\n }\n\n mode = Mode.LongHex\n } else if (char === '$') {\n if (buffer !== '') {\n throw new Error(`invalid hex: \\`${buffer}\\``)\n }\n\n mode = Mode.Text\n } else {\n buffer += char\n }\n } else if (mode === Mode.LongHex) {\n if (char === '_') {\n throw new Error(`invalid hex: \\`${buffer + char}\\``)\n } else if (char === '$') {\n output += decodeHex(buffer)\n buffer = ''\n\n mode = Mode.Text\n } else {\n buffer += char\n }\n }\n }\n\n return output\n}\n\nconst IDENTIFIER_REGEX = /__TURBOPACK__[a-zA-Z0-9_$]+__/g\n\nexport function decodeMagicIdentifiers(str: string): string {\n try {\n return str.replaceAll(\n IDENTIFIER_REGEX,\n (ident) => `{${decodeMagicIdentifier(ident)}}`\n )\n } catch (e) {\n console.error('decoding magic identifiers failed', e)\n }\n return str\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,UAAU,MAAc;IAC/B,IAAI,OAAO,WAAW,IAAI;QACxB,MAAM,IAAI,MAAM;IAClB;IAEA,MAAM,MAAM,SAAS,QAAQ;IAC7B,IAAI,MAAM,MAAM;QACd,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;IAC9C;IAEA,OAAO,OAAO,cAAc;AAC9B;IAEA;UAAW,IAAI;IAAJ,KAAA,KACT,UAAA,KAAA;IADS,KAAA,KAET,gBAAA,KAAA;IAFS,KAAA,KAGT,SAAA,KAAA;IAHS,KAAA,KAIT,aAAA,KAAA;GAJS,SAAA;AAOX,MAAM,eAAe;AAErB,SAAS,sBAAsB,UAAkB;IAC/C,MAAM,UAAU,WAAW,MAAM;IACjC,IAAI,CAAC,SAAS;QACZ,OAAO;IACT;IAEA,MAAM,QAAQ,OAAO,CAAC,EAAE;IAExB,IAAI,SAAS;IAEb,IAAI,OAlBJ;IAmBA,IAAI,SAAS;IACb,IAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK;QACrC,MAAM,OAAO,KAAK,CAAC,EAAE;QAErB,IAAI,SAvBN,GAuB0B;YACtB,IAAI,SAAS,KAAK;gBAChB,OAxBN;YAyBI,OAAO,IAAI,SAAS,KAAK;gBACvB,OAzBN;YA0BI,OAAO;gBACL,UAAU;YACZ;QACF,OAAO,IAAI,SA9Bb,GA8BuC;YACnC,IAAI,SAAS,KAAK;gBAChB,UAAU;gBACV,OAlCN;YAmCI,OAAO,IAAI,SAAS,KAAK;gBACvB,UAAU;gBACV,OAnCN;YAoCI,OAAO;gBACL,UAAU;gBACV,UAAU;gBACV,OAzCN;YA0CI;QACF,OAAO,IAAI,SAzCb,GAyCgC;YAC5B,IAAI,OAAO,WAAW,GAAG;gBACvB,UAAU,UAAU;gBACpB,SAAS;YACX;YAEA,IAAI,SAAS,KAAK;gBAChB,IAAI,WAAW,IAAI;oBACjB,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;gBAC9C;gBAEA,OAnDN;YAoDI,OAAO,IAAI,SAAS,KAAK;gBACvB,IAAI,WAAW,IAAI;oBACjB,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;gBAC9C;gBAEA,OA5DN;YA6DI,OAAO;gBACL,UAAU;YACZ;QACF,OAAO,IAAI,SA7Db,GA6DoC;YAChC,IAAI,SAAS,KAAK;gBAChB,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,SAAS,KAAK,EAAE,CAAC;YACrD,OAAO,IAAI,SAAS,KAAK;gBACvB,UAAU,UAAU;gBACpB,SAAS;gBAET,OAvEN;YAwEI,OAAO;gBACL,UAAU;YACZ;QACF;IACF;IAEA,OAAO;AACT;AAEA,MAAM,mBAAmB;AAElB,SAAS,uBAAuB,GAAW;IAChD,IAAI;QACF,OAAO,IAAI,WACT,kBACA,CAAC,QAAU,CAAC,CAAC,EAAE,sBAAsB,OAAO,CAAC,CAAC;IAElD,EAAE,OAAO,GAAG;QACV,QAAQ,MAAM,qCAAqC;IACrD;IACA,OAAO;AACT"}}, {"offset": {"line": 1995, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 1999, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/nodeStackFrames.ts"],"sourcesContent":["import {\n parse,\n StackFrame,\n} from '@vercel/turbopack-next/compiled/stacktrace-parser'\n\nexport function getFilesystemFrame(frame: StackFrame): StackFrame {\n const f: StackFrame = { ...frame }\n\n if (typeof f.file === 'string') {\n if (\n // Posix:\n f.file.startsWith('/') ||\n // Win32:\n /^[a-z]:\\\\/i.test(f.file) ||\n // Win32 UNC:\n f.file.startsWith('\\\\\\\\')\n ) {\n f.file = `file://${f.file}`\n }\n }\n\n return f\n}\n\nconst symbolError = Symbol('NextjsError')\n\nexport function getErrorSource(error: Error): 'server' | 'edge-server' | null {\n return (error as any)[symbolError] || null\n}\n\ntype ErrorType = 'edge-server' | 'server'\n\nexport function decorateServerError(error: Error, type: ErrorType) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type,\n })\n}\n\nexport function getServerError(error: Error, type: ErrorType): Error {\n let n: Error\n try {\n throw new Error(error.message)\n } catch (e) {\n n = e as Error\n }\n\n n.name = error.name\n try {\n n.stack = `${n.toString()}\\n${parse(error.stack!)\n .map(getFilesystemFrame)\n .map((f) => {\n let str = ` at ${f.methodName}`\n if (f.file) {\n let loc = f.file\n if (f.lineNumber) {\n loc += `:${f.lineNumber}`\n if (f.column) {\n loc += `:${f.column}`\n }\n }\n str += ` (${loc})`\n }\n return str\n })\n .join('\\n')}`\n } catch {\n n.stack = error.stack\n }\n\n decorateServerError(n, type)\n return n\n}\n"],"names":[],"mappings":";;;;;;;;;AAKO,SAAS,mBAAmB,KAAiB;IAClD,MAAM,IAAgB;QAAE,GAAG,KAAK;IAAC;IAEjC,IAAI,OAAO,EAAE,SAAS,UAAU;QAC9B,IAEE,EAAE,KAAK,WAAW,QAElB,aAAa,KAAK,EAAE,SAEpB,EAAE,KAAK,WAAW,SAClB;YACA,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC;QAC7B;IACF;IAEA,OAAO;AACT;AAEA,MAAM,cAAc,OAAO;AAEpB,SAAS,eAAe,KAAY;IACzC,OAAO,AAAC,KAAa,CAAC,YAAY,IAAI;AACxC;AAIO,SAAS,oBAAoB,KAAY,EAAE,IAAe;IAC/D,OAAO,eAAe,OAAO,aAAa;QACxC,UAAU;QACV,YAAY;QACZ,cAAc;QACd,OAAO;IACT;AACF;AAEO,SAAS,eAAe,KAAY,EAAE,IAAe;IAC1D,IAAI;IACJ,IAAI;QACF,MAAM,IAAI,MAAM,MAAM;IACxB,EAAE,OAAO,GAAG;QACV,IAAI;IACN;IAEA,EAAE,OAAO,MAAM;IACf,IAAI;QACF,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,4HAAM,MAAM,OACvC,IAAI,oBACJ,IAAI,CAAC;YACJ,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;YAClC,IAAI,EAAE,MAAM;gBACV,IAAI,MAAM,EAAE;gBACZ,IAAI,EAAE,YAAY;oBAChB,OAAO,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC;oBACzB,IAAI,EAAE,QAAQ;wBACZ,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC;oBACvB;gBACF;gBACA,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpB;YACA,OAAO;QACT,GACC,KAAK,MAAM,CAAC;IACjB,EAAE,OAAM;QACN,EAAE,QAAQ,MAAM;IAClB;IAEA,oBAAoB,GAAG;IACvB,OAAO;AACT"}}, {"offset": {"line": 2060, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2064, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/CodeFrame/styles.tsx"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\n\nconst styles = css`\n .codeframe {\n overflow: auto;\n border-radius: var(--size-gap-half);\n background-color: var(--color-ansi-bg);\n color: var(--color-ansi-fg);\n }\n .codeframe::selection,\n .codeframe *::selection {\n background-color: var(--color-ansi-selection);\n }\n .codeframe * {\n color: inherit;\n background-color: transparent;\n font-family: var(--font-mono);\n }\n\n .codeframe > * {\n margin: 0;\n padding: calc(var(--size-gap) + var(--size-gap-half))\n calc(var(--size-gap-double) + var(--size-gap-half));\n }\n .codeframe > div {\n display: inline-block;\n width: auto;\n min-width: 100%;\n border-bottom: 1px solid var(--color-ansi-bright-black);\n }\n .codeframe > div > p {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0;\n }\n .codeframe > div > p:hover {\n text-decoration: underline dotted;\n }\n .codeframe div > p > svg {\n width: auto;\n height: 1em;\n margin-left: 8px;\n }\n .codeframe div > pre {\n overflow: hidden;\n display: inline-block;\n }\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CnB,CAAC"}}, {"offset": {"line": 2119, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2123, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/CodeFrame/CodeFrame.tsx"],"sourcesContent":["import Anser from '@vercel/turbopack-next/compiled/anser'\nimport * as React from 'react'\nimport { StackFrame } from '@vercel/turbopack-next/compiled/stacktrace-parser'\nimport stripAnsi from '@vercel/turbopack-next/compiled/strip-ansi'\n\nimport { getFrameSource } from '../../helpers/stack-frame'\n\nexport type CodeFrameProps = { stackFrame: StackFrame; codeFrame: string }\n\nexport function CodeFrame({ stackFrame, codeFrame }: CodeFrameProps) {\n // Strip leading spaces out of the code frame:\n const formattedFrame = React.useMemo(() => {\n const lines = codeFrame.split(/\\r?\\n/g)\n const prefixLength = lines\n .map((line) =>\n /^>? +\\d+ +\\| [ ]+/.exec(stripAnsi(line)) === null\n ? null\n : /^>? +\\d+ +\\| ( *)/.exec(stripAnsi(line))\n )\n .filter(Boolean)\n .map((v) => v!.pop()!)\n .reduce((c, n) => (isNaN(c) ? n.length : Math.min(c, n.length)), NaN)\n\n if (prefixLength > 1) {\n const p = ' '.repeat(prefixLength)\n return lines\n .map((line, a) =>\n ~(a = line.indexOf('|'))\n ? line.substring(0, a) + line.substring(a).replace(p, '')\n : line\n )\n .join('\\n')\n }\n return lines.join('\\n')\n }, [codeFrame])\n\n const decoded = React.useMemo(() => {\n return Anser.ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true,\n })\n }, [formattedFrame])\n\n const open = React.useCallback(() => {\n const params = new URLSearchParams()\n for (const key in stackFrame) {\n params.append(key, ((stackFrame as any)[key] ?? '').toString())\n }\n\n self\n .fetch(\n `${\n process.env.__NEXT_ROUTER_BASEPATH || ''\n }/__nextjs_launch-editor?${params.toString()}`\n )\n .then(\n () => {},\n () => {\n console.error('There was an issue opening this code in your editor.')\n }\n )\n }, [stackFrame])\n\n // TODO: make the caret absolute\n return (\n
\n
\n \n \n {getFrameSource(stackFrame)} @ {stackFrame.methodName}\n \n \n \n \n \n \n

\n
\n
\n        {decoded.map((entry, index) => (\n          \n            {entry.content}\n          \n        ))}\n      
\n
\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AASO,SAAS,UAAU,KAAyC;QAAzC,EAAE,WAAU,EAAE,UAAS,EAAkB,GAAzC;IAExB,MAAM,iBAAiB,uIAAM,QAAgB;QAC3C,MAAM,QAAQ,UAAU,MAAM;QAC9B,MAAM,eAAe,MAClB,IAAI,CAAC,OACJ,oBAAoB,KAAK,uHAAU,WAAW,OAC1C,OACA,oBAAoB,KAAK,uHAAU,QAExC,OAAO,SACP,IAAI,CAAC,IAAM,EAAG,OACd,OAAO,CAAC,GAAG,IAAO,MAAM,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,EAAE,SAAU;QAEnE,IAAI,eAAe,GAAG;YACpB,MAAM,IAAI,IAAI,OAAO;YACrB,OAAO,MACJ,IAAI,CAAC,MAAM,IACV,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IACnB,KAAK,UAAU,GAAG,KAAK,KAAK,UAAU,GAAG,QAAQ,GAAG,MACpD,MAEL,KAAK;QACV;QACA,OAAO,MAAM,KAAK;IACpB,GAAG;QAAC;KAAU;IAEd,MAAM,UAAU,uIAAM,QAAQ;QAC5B,OAAO,+GAAM,WAAW,gBAAgB;YACtC,MAAM;YACN,aAAa;YACb,cAAc;QAChB;IACF,GAAG;QAAC;KAAe;IAEnB,MAAM,OAAO,uIAAM,YAAY;QAC7B,MAAM,SAAS,IAAI;QACnB,IAAK,MAAM,OAAO,WAAY;YAC5B,OAAO,OAAO,KAAK,CAAC,AAAC,UAAkB,CAAC,IAAI,IAAI,EAAE,EAAE;QACtD;QAEA,KACG,MACC,CAAC,EACC,qJAAQ,IAAI,0BAA0B,GACvC,wBAAwB,EAAE,OAAO,WAAW,CAAC,EAE/C,KACC,KAAO,GACP;YACE,QAAQ,MAAM;QAChB;IAEN,GAAG;QAAC;KAAW;IAGf,OACE,wJAAC;QAAI,uBAAqB;QAAC,WAAU;;YACnC,uJAAC;0BACC,wJAAC;oBACC,MAAK;oBACL,SAAS;oBACT,UAAU;oBACV,OAAM;;wBAEN,wJAAC;;gCACE,4IAAe;gCAAY;gCAAI,WAAW;;;wBAE7C,wJAAC;4BACC,OAAM;4BACN,SAAQ;4BACR,MAAK;4BACL,QAAO;4BACP,aAAY;4BACZ,eAAc;4BACd,gBAAe;;gCAEf,uJAAC;oCAAK,GAAE;;gCACR,uJAAC;oCAAS,QAAO;;gCACjB,uJAAC;oCAAK,IAAG;oCAAK,IAAG;oCAAK,IAAG;oCAAK,IAAG;;;;;;;YAIvC,uJAAC;0BACE,QAAQ,IAAI,CAAC,OAAO,QACnB,uJAAC;wBAEC,OAAO;4BACL,OAAO,MAAM,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG;4BAC/C,GAAI,MAAM,eAAe,SACrB;gCAAE,YAAY;4BAAI,IAClB,MAAM,eAAe,WACrB;gCAAE,WAAW;4BAAS,IACtB,SAAS;wBACf;kCAEC,MAAM;uBAVF,CAAC,MAAM,EAAE,MAAM,CAAC;;;;AAgBjC"}}, {"offset": {"line": 2231, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2235, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 2244, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2248, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/container/RuntimeError.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StackFrame } from '@vercel/turbopack-next/compiled/stacktrace-parser'\n\nimport { CodeFrame } from '../components/CodeFrame'\nimport { DialogBody, DialogBodyProps } from '../components/Dialog'\nimport { LeftRightDialogHeader } from '../components/LeftRightDialogHeader'\nimport { clsx } from '../helpers/clsx'\nimport { getErrorSource } from '../helpers/nodeStackFrames'\nimport { noop as css } from '../helpers/noop-template'\nimport { ReadyRuntimeError } from '../helpers/getErrorByType'\nimport { decodeMagicIdentifiers } from '../helpers/magic-identifier'\nimport { getFrameSource, OriginalStackFrame } from '../helpers/stack-frame'\nimport { usePagination } from '../hooks/usePagination'\nimport { ExternalLink } from '../icons'\n\nfunction CallStackFrame({ frame }: { frame: OriginalStackFrame }) {\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n\n const f: StackFrame = frame.originalStackFrame ?? frame.sourceStackFrame\n const hasSource = Boolean(frame.originalCodeFrame)\n\n const open = React.useCallback(() => {\n if (!hasSource) return\n\n const params = new URLSearchParams()\n for (const key in f) {\n params.append(key, ((f as any)[key] ?? '').toString())\n }\n\n self\n .fetch(\n `${\n process.env.__NEXT_ROUTER_BASEPATH ?? ''\n }/__nextjs_launch-editor?${params.toString()}`\n )\n .then(\n () => {},\n () => {\n console.error('There was an issue opening this code in your editor.')\n }\n )\n }, [hasSource, f])\n\n return (\n
  • \n
    {f.methodName}
    \n \n {getFrameSource(f)}\n \n \n
  • \n )\n}\n\nexport type RuntimeErrorProps = { error: ReadyRuntimeError }\n\nexport function RuntimeError({ error }: RuntimeErrorProps) {\n const firstFirstPartyFrameIndex = React.useMemo(() => {\n return error.frames.findIndex(\n (entry) =>\n entry.expanded &&\n Boolean(entry.originalCodeFrame) &&\n Boolean(entry.originalStackFrame)\n )\n }, [error.frames])\n const firstFrame = React.useMemo(() => {\n return error.frames[firstFirstPartyFrameIndex] ?? null\n }, [error.frames, firstFirstPartyFrameIndex])\n\n const allLeadingFrames = React.useMemo(\n () =>\n firstFirstPartyFrameIndex < 0\n ? []\n : error.frames.slice(0, firstFirstPartyFrameIndex),\n [error.frames, firstFirstPartyFrameIndex]\n )\n\n const [all, setAll] = React.useState(firstFrame == null)\n const toggleAll = React.useCallback(() => {\n setAll((v) => !v)\n }, [])\n\n const leadingFrames = React.useMemo(\n () => allLeadingFrames.filter((f) => f.expanded || all),\n [all, allLeadingFrames]\n )\n const allCallStackFrames = React.useMemo(\n () => error.frames.slice(firstFirstPartyFrameIndex + 1),\n [error.frames, firstFirstPartyFrameIndex]\n )\n const visibleCallStackFrames = React.useMemo(\n () => allCallStackFrames.filter((f) => f.expanded || all),\n [all, allCallStackFrames]\n )\n\n const canShowMore = React.useMemo(() => {\n return (\n allCallStackFrames.length !== visibleCallStackFrames.length ||\n (all && firstFrame != null)\n )\n }, [\n all,\n allCallStackFrames.length,\n firstFrame,\n visibleCallStackFrames.length,\n ])\n\n return (\n <>\n {firstFrame ? (\n <>\n
    Source
    \n
      \n {leadingFrames.map((frame, index) => (\n \n ))}\n
    \n \n \n ) : undefined}\n {visibleCallStackFrames.length ? (\n <>\n
    Call Stack
    \n
      \n {visibleCallStackFrames.map((frame, index) => (\n \n ))}\n
    \n \n ) : undefined}\n {canShowMore ? (\n <>\n \n {all ? 'Hide' : 'Show'} collapsed frames\n \n \n ) : undefined}\n \n )\n}\n\nfunction HotlinkedText(props: { text: string }) {\n const { text } = props\n\n const linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i\n return (\n <>\n {linkRegex.test(text)\n ? text.split(' ').map((word, index, array) => {\n if (linkRegex.test(word)) {\n const link = linkRegex.exec(word)\n return (\n \n {link && (\n \n {word}\n \n )}\n {index === array.length - 1 ? '' : ' '}\n \n )\n }\n return index === array.length - 1 ? (\n {word}\n ) : (\n {word} \n )\n })\n : text}\n \n )\n}\n\ntype RuntimeErrorsDialogBodyProps = {\n items: ReadyRuntimeError[]\n message: string\n 'data-hidden'?: boolean\n}\n\nexport function RuntimeErrorsDialogBody({\n items: readyErrors,\n message,\n 'data-hidden': hidden = false,\n className,\n ...rest\n}: RuntimeErrorsDialogBodyProps & Omit) {\n const [activeError, { previous, next }, activeIdx] =\n usePagination(readyErrors)\n\n if (readyErrors.length < 1 || activeError == null) {\n return (\n \n )\n }\n\n const isServerError = ['server', 'edge-server'].includes(\n getErrorSource(activeError.error) || ''\n )\n\n return (\n \n
    \n

    {message}

    \n
    \n \n {activeError.error.name}:{' '}\n \n \n {isServerError ? (\n
    \n \n This error happened while generating the page. Any console logs will\n be displayed in the terminal window.\n \n
    \n ) : undefined}\n \n \n )\n}\n\nexport const styles = css`\n button.runtime-error-collapsed-action {\n background: none;\n border: none;\n padding: 0;\n font-size: var(--size-font-small);\n line-height: var(--size-font-bigger);\n color: var(--color-text-dim);\n }\n\n .call-stack-frames {\n list-style: none;\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\n overflow-y: scroll;\n }\n\n .call-stack-frame:not(:last-child) {\n margin-bottom: var(--size-gap-double);\n }\n\n .call-stack-frame > h6 {\n margin-top: 0;\n margin-bottom: 0;\n font-family: var(--font-mono);\n color: #666;\n }\n\n .call-stack-frame[data-expanded='true'] > h6 {\n color: #222;\n }\n\n .call-stack-frame > div {\n display: flex;\n align-items: center;\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\n font-size: var(--size-font-small);\n color: #999;\n }\n\n .call-stack-frame > div > svg {\n width: auto;\n height: var(--size-font-small);\n margin-left: var(--size-gap);\n\n display: none;\n }\n\n .call-stack-frame > div[data-has-source] {\n cursor: pointer;\n }\n\n .call-stack-frame > div[data-has-source]:hover {\n text-decoration: underline dotted;\n }\n\n .call-stack-frame > div[data-has-source] > svg {\n display: unset;\n }\n`\n"],"names":[],"mappings":"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"}}, {"offset": {"line": 2565, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2569, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Toast/Toast.tsx"],"sourcesContent":["import * as React from 'react'\nimport { clsx } from '../../helpers/clsx'\n\nexport type ToastProps = React.PropsWithChildren & {\n onClick?: (ev: React.MouseEvent) => void\n className?: string\n}\n\nexport function Toast({\n onClick,\n children,\n className,\n ...rest\n}: ToastProps & React.HTMLProps) {\n return (\n \n
    \n {children}\n
    \n \n )\n}\n"],"names":[],"mappings":";;;;;;;;AAQO,SAAS,MAAM,KAKyB;QALzB,EACpB,QAAO,EACP,SAAQ,EACR,UAAS,EACT,GAAG,MAC0C,GALzB;IAMpB,OACE,uJAAC;QACE,GAAG,IAAI;QACR,mBAAiB;QACjB,SAAS;QACT,WAAW,wHAAK,SAAS;kBAEzB,uJAAC;YAAI,2BAAyB;YAAC,WAAU;sBACtC;;;AAIT"}}, {"offset": {"line": 2591, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2595, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Toast/styles.ts"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\n\nconst styles = css`\n .toast {\n position: fixed;\n bottom: var(--size-gap-double);\n left: var(--size-gap-double);\n max-width: 420px;\n z-index: 9000;\n }\n\n @media (max-width: 440px) {\n .toast {\n max-width: 90vw;\n left: 5vw;\n }\n }\n\n .toast-wrapper {\n padding: 16px;\n border-radius: var(--size-gap-half);\n font-weight: 600;\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\n rgba(0, 0, 0, 0.25);\n }\n\n .toast[data-severity='error'] > .toast-wrapper {\n color: var(--color-text-white);\n background-color: var(--color-error);\n }\n\n .toast[data-severity='warning'] > .toast-wrapper {\n color: var(--color-text-white);\n background-color: var(--color-warning);\n }\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCnB,CAAC"}}, {"offset": {"line": 2636, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2640, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, {"offset": {"line": 2649, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2653, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/container/ErrorsToast.tsx"],"sourcesContent":["import { Toast } from '../components/Toast'\nimport { AlertOctagon, AlertTriangle, CloseIcon } from '../icons'\nimport { noop as css } from '../helpers/noop-template'\n\nexport type ErrorsToastProps = {\n errorCount: number\n warningCount: number\n severity: 'error' | 'warning'\n onClick: () => void\n onClose: () => void\n}\n\nexport function ErrorsToast({\n errorCount,\n warningCount,\n severity,\n onClick,\n onClose,\n}: ErrorsToastProps) {\n let message = ''\n\n if (errorCount > 0) {\n message += errorCount + ' ' + (errorCount > 1 ? 'Errors' : 'Error')\n }\n if (warningCount > 0) {\n if (errorCount > 0) {\n message += ' and '\n }\n\n message += warningCount + ' ' + (warningCount > 1 ? 'Warnings' : 'Warning')\n }\n\n return (\n {\n e.preventDefault()\n e.stopPropagation()\n onClick()\n }}\n data-severity={severity}\n >\n
    \n {severity == 'error' && }\n {severity == 'warning' && }\n {message}\n {\n e.preventDefault()\n e.stopPropagation()\n onClose()\n }}\n aria-label={\n { error: 'Hide Errors', warning: 'Hide Warnings' }[severity]\n }\n >\n \n \n
    \n \n )\n}\n\nexport const styles = css`\n .toast-errors {\n cursor: pointer;\n transition: transform 0.2s ease;\n will-change: transform;\n }\n\n .toast-errors:hover {\n transform: scale(1.025);\n }\n\n .toast-errors-body {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n }\n\n .toast-errors-body > svg {\n margin-right: var(--size-gap);\n }\n\n .toast-errors-hide-button {\n display: flex;\n margin-left: var(--size-gap-triple);\n border: none;\n background: none;\n color: var(--color-text-white);\n padding: 0;\n transition: transform, opacity 0.25s ease;\n opacity: 0.7;\n }\n\n .toast-errors-hide-button:hover {\n opacity: 1;\n }\n`\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYO,SAAS,YAAY,KAMT;QANS,EAC1B,WAAU,EACV,aAAY,EACZ,SAAQ,EACR,QAAO,EACP,QAAO,EACU,GANS;IAO1B,IAAI,UAAU;IAEd,IAAI,aAAa,GAAG;QAClB,WAAW,aAAa,MAAM,CAAC,aAAa,IAAI,WAAW,OAAO;IACpE;IACA,IAAI,eAAe,GAAG;QACpB,IAAI,aAAa,GAAG;YAClB,WAAW;QACb;QAEA,WAAW,eAAe,MAAM,CAAC,eAAe,IAAI,aAAa,SAAS;IAC5E;IAEA,OACE;QACE,WAAU;QACV,SAAS,CAAC;YACR,EAAE;YACF,EAAE;YACF;QACF;QACA,iBAAe;kBAEf,wJAAC;YAAI,WAAU;;gBACZ,YAAY,WAAW;gBACvB,YAAY,aAAa;gBAC1B,uJAAC;8BAAM;;gBACP,uJAAC;oBACC,+BAA6B;oBAC7B,WAAU;oBACV,MAAK;oBACL,SAAS,CAAC;wBACR,EAAE;wBACF,EAAE;wBACF;oBACF;oBACA,cACE;wBAAE,OAAO;wBAAe,SAAS;oBAAgB,CAAC,CAAC,SAAS;8BAG9D;;;;;AAKV;AAEO,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoC1B,CAAC"}}, {"offset": {"line": 2750, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2754, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/bus.ts"],"sourcesContent":["import { StackFrame } from 'stacktrace-parser'\n\nimport type { Issue } from '@vercel/turbopack-dev/types/protocol'\n\nexport const TYPE_BUILD_OK = 'build-ok'\nexport const TYPE_TURBOPACK_ISSUES = 'turbopack-error'\nexport const TYPE_BEFORE_REFRESH = 'before-fast-refresh'\nexport const TYPE_REFRESH = 'fast-refresh'\nexport const TYPE_UNHANDLED_ERROR = 'unhandled-error'\nexport const TYPE_UNHANDLED_REJECTION = 'unhandled-rejection'\nexport const TYPE_REACT_ERROR = 'react-error'\n\nexport type BuildOk = { type: typeof TYPE_BUILD_OK }\nexport type TurbopackIssues = {\n type: typeof TYPE_TURBOPACK_ISSUES\n issues: Issue[]\n}\nexport type BeforeFastRefresh = { type: typeof TYPE_BEFORE_REFRESH }\nexport type FastRefresh = { type: typeof TYPE_REFRESH }\nexport type UnhandledError = {\n type: typeof TYPE_UNHANDLED_ERROR\n reason: Error\n frames: StackFrame[]\n}\nexport type UnhandledRejection = {\n type: typeof TYPE_UNHANDLED_REJECTION\n reason: Error\n frames: StackFrame[]\n}\nexport type ReactError = {\n type: typeof TYPE_REACT_ERROR\n error: Error\n componentStack: string | null\n}\n\nexport type BusEvent =\n | BuildOk\n | TurbopackIssues\n | BeforeFastRefresh\n | FastRefresh\n | UnhandledError\n | UnhandledRejection\n | ReactError\n\nexport type BusEventHandler = (ev: BusEvent) => void\n\nconst handlers: Set = new Set()\nconst queue: BusEvent[] = []\n\nfunction drain() {\n // Draining should never happen synchronously in case multiple handlers are\n // registered.\n setTimeout(function () {\n while (\n // Until we are out of events:\n Boolean(queue.length) &&\n // Or, if all handlers removed themselves as a result of handling the\n // event(s)\n Boolean(handlers.size)\n ) {\n const ev = queue.shift()!\n handlers.forEach((handler) => handler(ev))\n }\n }, 1)\n}\n\nexport function emit(ev: BusEvent): void {\n queue.push(Object.freeze({ ...ev }))\n drain()\n}\n\nexport function on(fn: BusEventHandler): boolean {\n if (handlers.has(fn)) {\n return false\n }\n\n handlers.add(fn)\n drain()\n return true\n}\n\nexport function off(fn: BusEventHandler): boolean {\n if (handlers.has(fn)) {\n handlers.delete(fn)\n return true\n }\n\n return false\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAIO,MAAM,gBAAgB;AACtB,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB;AAC5B,MAAM,eAAe;AACrB,MAAM,uBAAuB;AAC7B,MAAM,2BAA2B;AACjC,MAAM,mBAAmB;AAoChC,MAAM,WAAiC,IAAI;AAC3C,MAAM,QAAoB,EAAE;AAE5B,SAAS;IAGP,WAAW;QACT,MAEE,QAAQ,MAAM,WAGd,QAAQ,SAAS,MACjB;YACA,MAAM,KAAK,MAAM;YACjB,SAAS,QAAQ,CAAC,UAAY,QAAQ;QACxC;IACF,GAAG;AACL;AAEO,SAAS,KAAK,EAAY;IAC/B,MAAM,KAAK,OAAO,OAAO;QAAE,GAAG,EAAE;IAAC;IACjC;AACF;AAEO,SAAS,GAAG,EAAmB;IACpC,IAAI,SAAS,IAAI,KAAK;QACpB,OAAO;IACT;IAEA,SAAS,IAAI;IACb;IACA,OAAO;AACT;AAEO,SAAS,IAAI,EAAmB;IACrC,IAAI,SAAS,IAAI,KAAK;QACpB,SAAS,OAAO;QAChB,OAAO;IACT;IAEA,OAAO;AACT"}}, {"offset": {"line": 2804, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2808, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/helpers/getErrorByType.ts"],"sourcesContent":["import { TYPE_UNHANDLED_ERROR, TYPE_UNHANDLED_REJECTION } from '../bus'\nimport { SupportedErrorEvent } from '../container/Errors'\n\nimport { getErrorSource } from './nodeStackFrames'\nimport { getOriginalStackFrames, OriginalStackFrame } from './stack-frame'\n\nexport type ReadyRuntimeError = {\n id: number\n runtime: true\n error: Error\n frames: OriginalStackFrame[]\n}\n\nexport async function getErrorByType(\n ev: SupportedErrorEvent\n): Promise {\n const { id, event } = ev\n switch (event.type) {\n case TYPE_UNHANDLED_ERROR:\n case TYPE_UNHANDLED_REJECTION: {\n return {\n id,\n runtime: true,\n error: event.reason,\n frames: await getOriginalStackFrames(\n event.frames,\n getErrorSource(event.reason),\n event.reason.toString()\n ),\n }\n }\n default: {\n break\n }\n }\n\n throw new Error('type system invariant violation')\n}\n\nexport function getUnresolvedErrorByType(\n ev: SupportedErrorEvent\n): ReadyRuntimeError {\n const { id, event } = ev\n switch (event.type) {\n case TYPE_UNHANDLED_ERROR:\n case TYPE_UNHANDLED_REJECTION: {\n return {\n id,\n runtime: true,\n error: event.reason,\n frames: event.frames.map((frame) => ({\n error: true,\n reason: 'unresolved',\n external: false,\n expanded: false,\n sourceStackFrame: frame,\n originalStackFrame: null,\n originalCodeFrame: null,\n })),\n }\n }\n default: {\n break\n }\n }\n\n throw new Error('type system invariant violation')\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAaO,eAAe,eACpB,EAAuB;IAEvB,MAAM,EAAE,GAAE,EAAE,MAAK,EAAE,GAAG;IACtB,OAAQ,MAAM;QACZ;QACA;YAA+B;gBAC7B,OAAO;oBACL;oBACA,SAAS;oBACT,OAAO,MAAM;oBACb,QAAQ,MAAM,oJACZ,MAAM,QACN,6IAAe,MAAM,SACrB,MAAM,OAAO;gBAEjB;YACF;QACA;YAAS;gBACP;YACF;IACF;IAEA,MAAM,IAAI,MAAM;AAClB;AAEO,SAAS,yBACd,EAAuB;IAEvB,MAAM,EAAE,GAAE,EAAE,MAAK,EAAE,GAAG;IACtB,OAAQ,MAAM;QACZ;QACA;YAA+B;gBAC7B,OAAO;oBACL;oBACA,SAAS;oBACT,OAAO,MAAM;oBACb,QAAQ,MAAM,OAAO,IAAI,CAAC,QAAU,CAAC;4BACnC,OAAO;4BACP,QAAQ;4BACR,UAAU;4BACV,UAAU;4BACV,kBAAkB;4BAClB,oBAAoB;4BACpB,mBAAmB;wBACrB,CAAC;gBACH;YACF;QACA;YAAS;gBACP;YACF;IACF;IAEA,MAAM,IAAI,MAAM;AAClB"}}, {"offset": {"line": 2867, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2871, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Overlay/styles.tsx"],"sourcesContent":["import { noop as css } from '../../helpers/noop-template'\n\nconst styles = css`\n .dialog-overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n z-index: 9000;\n\n display: flex;\n align-content: center;\n align-items: center;\n flex-direction: column;\n padding: 10vh 15px 0;\n }\n\n @media (max-height: 812px) {\n .dialog-overlay {\n padding: 15px 15px 0;\n }\n }\n\n .dialog-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(17, 17, 17, 0.2);\n pointer-events: all;\n z-index: -1;\n }\n\n .dialog-backdrop[data-dialog-backdrop-fixed] {\n cursor: not-allowed;\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n }\n`\n\nexport { styles }\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,SAAS,mIAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCnB,CAAC"}}, {"offset": {"line": 2918, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 2922, "column": 0}, "map": {"version":3,"sources":["/turbopack/[next]/overlay/internal/components/Overlay/maintain--tab-focus.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\n\nimport _platform from '@vercel/turbopack-next/compiled/platform'\nimport cssEscape from '@vercel/turbopack-next/compiled/css.escape'\n\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return []\n }\n\n if (Array.isArray(input)) {\n return input\n }\n\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [input]\n }\n\n if (typeof input === 'string') {\n input = document.querySelectorAll(input)\n }\n\n if (input.length !== undefined) {\n return [].slice.call(input, 0)\n }\n\n throw new TypeError('unexpected input ' + String(input))\n}\n\nfunction contextToElement(_ref) {\n var context = _ref.context,\n _ref$label = _ref.label,\n label = _ref$label === undefined ? 'context-to-element' : _ref$label,\n resolveDocument = _ref.resolveDocument,\n defaultToDocument = _ref.defaultToDocument\n\n var element = nodeArray(context)[0]\n\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement\n }\n\n if (!element && defaultToDocument) {\n return document.documentElement\n }\n\n if (!element) {\n throw new TypeError(label + ' requires valid options.context')\n }\n\n if (\n element.nodeType !== Node.ELEMENT_NODE &&\n element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE\n ) {\n throw new TypeError(label + ' requires options.context to be an Element')\n }\n\n return element\n}\n\nfunction getShadowHost() {\n var _ref =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n context = _ref.context\n\n var element = contextToElement({\n label: 'get/shadow-host',\n context: context,\n })\n\n // walk up to the root\n var container = null\n\n while (element) {\n container = element\n element = element.parentNode\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (\n container.nodeType === container.DOCUMENT_FRAGMENT_NODE &&\n container.host\n ) {\n // the root is attached to a fragment node that has a host\n return container.host\n }\n\n return null\n}\n\nfunction getDocument(node) {\n if (!node) {\n return document\n }\n\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node\n }\n\n return node.ownerDocument || document\n}\n\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: 'is/active-element',\n resolveDocument: true,\n context: context,\n })\n\n var _document = getDocument(element)\n if (_document.activeElement === element) {\n return true\n }\n\n var shadowHost = getShadowHost({ context: element })\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true\n }\n\n return false\n}\n\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n context = _ref.context\n\n var list = []\n var element = contextToElement({\n label: 'get/parents',\n context: context,\n })\n\n while (element) {\n list.push(element)\n // IE does know support parentElement on SVGElement\n element = element.parentNode\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null\n }\n }\n\n return list\n}\n\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\n\nvar names = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n]\nvar name = null\n\nfunction findMethodName(element) {\n names.some(function (_name) {\n if (!element[_name]) {\n return false\n }\n\n name = _name\n return true\n })\n}\n\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element)\n }\n\n return element[name](selector)\n}\n\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify(_platform))\n\n// operating system\nvar os = platform.os.family || ''\nvar ANDROID = os === 'Android'\nvar WINDOWS = os.slice(0, 7) === 'Windows'\nvar OSX = os === 'OS X'\nvar IOS = os === 'iOS'\n\n// layout\nvar BLINK = platform.layout === 'Blink'\nvar GECKO = platform.layout === 'Gecko'\nvar TRIDENT = platform.layout === 'Trident'\nvar EDGE = platform.layout === 'EdgeHTML'\nvar WEBKIT = platform.layout === 'WebKit'\n\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version)\nvar majorVersion = Math.floor(version)\nplatform.majorVersion = majorVersion\n\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK, // \"Chrome\", \"Chrome Mobile\", \"Opera\"\n GECKO: GECKO, // \"Firefox\"\n TRIDENT: TRIDENT, // \"Internet Explorer\"\n EDGE: EDGE, // \"Microsoft Edge\"\n WEBKIT: WEBKIT, // \"Safari\"\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11,\n}\n\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft,\n }\n\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement('iframe')\n iframe.setAttribute(\n 'style',\n 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;'\n )\n iframe.setAttribute('aria-live', 'off')\n iframe.setAttribute('aria-busy', 'true')\n iframe.setAttribute('aria-hidden', 'true')\n document.body.appendChild(iframe)\n\n var _window = iframe.contentWindow\n var _document = _window.document\n\n _document.open()\n _document.close()\n var wrapper = _document.createElement('div')\n _document.body.appendChild(wrapper)\n\n data.iframe = iframe\n data.wrapper = wrapper\n data.window = _window\n data.document = _document\n\n return data\n}\n\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = ''\n // create dummy element to test focusability of\n var element =\n typeof options.element === 'string'\n ? data.document.createElement(options.element)\n : options.element(data.wrapper, data.document)\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus =\n options.mutate && options.mutate(element, data.wrapper, data.document)\n if (!focus && focus !== false) {\n focus = element\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element)\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus()\n // validate test's result\n return options.validate\n ? options.validate(element, focus, data.document)\n : data.document.activeElement === focus\n}\n\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement &&\n document.activeElement.blur &&\n document.activeElement.blur()\n if (platform.is.IE10) {\n // IE10 does not redirect focus to when the activeElement is removed\n document.body.focus()\n }\n } else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus()\n }\n\n document.body.removeChild(data.iframe)\n\n // restore scroll position\n window.scrollTop = data.windowScrollTop\n window.scrollLeft = data.windowScrollLeft\n document.body.scrollTop = data.bodyScrollTop\n document.body.scrollLeft = data.bodyScrollLeft\n}\n\nfunction detectFocus(tests) {\n var data = before()\n\n var results = {}\n Object.keys(tests).map(function (key) {\n results[key] = test(data, tests[key])\n })\n\n after(data)\n return results\n}\n\n// this file is overwritten by `npm run build:pre`\nvar version$1 = '1.4.1'\n\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */\n\nfunction readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0\n\n try {\n data = window.localStorage && window.localStorage.getItem(key)\n data = data ? JSON.parse(data) : {}\n } catch (e) {\n data = {}\n }\n\n return data\n}\n\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key)\n } catch (e) {\n // ignore\n }\n\n return\n }\n\n try {\n window.localStorage &&\n window.localStorage.setItem(key, JSON.stringify(value))\n } catch (e) {\n // ignore\n }\n}\n\nvar userAgent =\n (typeof window !== 'undefined' && window.navigator.userAgent) || ''\nvar cacheKey = 'ally-supports-cache'\nvar cache = readLocalStorage(cacheKey)\n\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {}\n}\n\ncache.userAgent = userAgent\ncache.version = version$1\n\nvar cache$1 = {\n get: function get() {\n return cache\n },\n set: function set(values) {\n Object.keys(values).forEach(function (key) {\n cache[key] = values[key]\n })\n\n cache.time = new Date().toISOString()\n writeLocalStorage(cacheKey, cache)\n },\n}\n\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0\n\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child')\n combinator = '>>>'\n } catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child')\n combinator = '/deep/'\n } catch (noDeep) {\n combinator = ''\n }\n }\n\n return combinator\n}\n\nvar gif =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '' +\n '\"\"'\n\n return element.querySelector('area')\n },\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '' +\n '\"\"'\n\n return false\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true\n }\n\n var focus = element.querySelector('area')\n focus.focus()\n return _document.activeElement === focus\n },\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '' +\n '\"\"'\n\n return element.querySelector('area')\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true\n }\n\n return _document.activeElement === focusTarget\n },\n}\n\nvar focusAudioWithoutControls = {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif)\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n },\n}\n\nvar invalidGif =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '\"\"'\n\n return element.querySelector('area')\n },\n}\n\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1')\n element.setAttribute(\n 'style',\n 'display: -webkit-flex; display: -ms-flexbox; display: flex;'\n )\n element.innerHTML = 'hello'\n return element.querySelector('span')\n },\n}\n\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0)\n element.setAttribute('disabled', 'disabled')\n },\n}\n\nvar focusFieldset = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = 'legend

    content

    '\n },\n}\n\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: 'span',\n mutate: function mutate(element) {\n element.setAttribute(\n 'style',\n 'display: -webkit-flex; display: -ms-flexbox; display: flex;'\n )\n element.innerHTML = 'hello'\n },\n}\n\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: 'form',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0)\n element.setAttribute('disabled', 'disabled')\n },\n}\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: 'a',\n mutate: function mutate(element) {\n element.href = '#void'\n element.innerHTML = '\"\"'\n return element.querySelector('img')\n },\n}\n\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '\"\"'\n\n return element.querySelector('img')\n },\n}\n\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement('iframe')\n\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe)\n\n // create the iframe's default document ()\n var iframeDocument = iframe.contentWindow.document\n iframeDocument.open()\n iframeDocument.close()\n return iframe\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = 'hidden'\n\n var iframeDocument = iframe.contentWindow.document\n var input = iframeDocument.createElement('input')\n iframeDocument.body.appendChild(input)\n return input\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document\n var focus = iframeDocument.querySelector('input')\n return iframeDocument.activeElement === focus\n },\n}\n\nvar result = !platform.is.WEBKIT\n\nfunction focusInZeroDimensionObject() {\n return result\n}\n\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 'invalid-value')\n },\n}\n\nvar focusLabelTabindex = {\n element: 'label',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1')\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */\n var variableToPreventDeadCodeElimination = element.offsetHeight\n /* eslint-enable no-unused-vars */\n element.focus()\n return _document.activeElement === element\n },\n}\n\nvar svg =\n 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb' +\n 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ' +\n 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg=='\n\n// Note: IE10 on BrowserStack does not like this test\n\nvar focusObjectSvgHidden = {\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml')\n element.setAttribute('data', svg)\n element.setAttribute('width', '200')\n element.setAttribute('height', '50')\n element.style.visibility = 'hidden'\n },\n}\n\n// Note: IE10 on BrowserStack does not like this test\n\nvar focusObjectSvg = {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml')\n element.setAttribute('data', svg)\n element.setAttribute('width', '200')\n element.setAttribute('height', '50')\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true\n }\n\n return _document.activeElement === element\n },\n}\n\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9\n\nfunction focusObjectSwf() {\n return result$1\n}\n\nvar focusRedirectImgUsemap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '' +\n '\"\"'\n\n // focus the , not the
    \n return element.querySelector('img')\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector('area')\n return _document.activeElement === target\n },\n}\n\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\n\nvar focusRedirectLegend = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML =\n 'legend'\n // take care of focus in validate();\n return false\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]')\n var tabbable = element.querySelector('input[tabindex=\"0\"]')\n\n // Firefox requires this test to focus the
    first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus()\n\n element.querySelector('legend').focus()\n return (\n (_document.activeElement === focusable && 'focusable') ||\n (_document.activeElement === tabbable && 'tabbable') ||\n ''\n )\n },\n}\n\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;')\n element.innerHTML =\n '
    scrollable content
    '\n return element.querySelector('div')\n },\n}\n\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;')\n element.innerHTML =\n '
    scrollable content
    '\n },\n}\n\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;')\n element.innerHTML =\n '
    scrollable content
    '\n },\n}\n\nvar focusSummary = {\n element: 'details',\n mutate: function mutate(element) {\n element.innerHTML = 'foo

    content

    '\n return element.firstElementChild\n },\n}\n\nfunction makeFocusableForeignObject() {\n // Constructs \n // without raising a Trusted Types violation\n var foreignObject = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'foreignObject'\n )\n foreignObject.width.baseVal.value = 30\n foreignObject.height.baseVal.value = 30\n foreignObject.appendChild(document.createElement('input'))\n foreignObject.lastChild.type = 'text'\n\n return foreignObject\n}\n\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement =\n element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg'\n if (!isSvgElement) {\n return false\n }\n\n // inject and focus an element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject()\n element.appendChild(foreignObject)\n var input = foreignObject.querySelector('input')\n input.focus()\n\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true\n\n // clean up\n element.removeChild(foreignObject)\n return true\n}\n\nfunction generate(element) {\n return (\n '' +\n element +\n ''\n )\n}\n\nfunction focus(element) {\n if (element.focus) {\n return\n }\n\n try {\n HTMLElement.prototype.focus.call(element)\n } catch (e) {\n focusSvgForeignObjectHack(element)\n }\n}\n\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget)\n return _document.activeElement === focusTarget\n}\n\nvar focusSvgFocusableAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('a')\n return element.querySelector('text')\n },\n validate: validate,\n}\n\nvar focusSvgTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('a')\n return element.querySelector('text')\n },\n validate: validate,\n}\n\nvar focusSvgNegativeTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('a')\n return element.querySelector('text')\n },\n validate: validate,\n}\n\nvar focusSvgUseTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate(\n [\n 'link',\n '',\n ].join('')\n )\n\n return element.querySelector('use')\n },\n validate: validate,\n}\n\nvar focusSvgForeignobjectTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate(\n ''\n )\n // Safari 8's querySelector() can't identify foreignObject, but getElementsByTagName() can\n return (\n element.querySelector('foreignObject') ||\n element.getElementsByTagName('foreignObject')[0]\n )\n },\n validate: validate,\n}\n\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\n\nvar result$2 = Boolean(\n platform.is.GECKO &&\n typeof SVGElement !== 'undefined' &&\n SVGElement.prototype.focus\n)\n\nfunction focusSvgInIframe() {\n return result$2\n}\n\nvar focusSvg = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('')\n return element.firstChild\n },\n validate: validate,\n}\n\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '3x')\n },\n}\n\nvar focusTable = {\n element: 'table',\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = 'cell';\n var fragment = _document.createDocumentFragment()\n fragment.innerHTML = 'cell'\n element.appendChild(fragment)\n },\n}\n\nvar focusVideoWithoutControls = {\n element: 'video',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif)\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n },\n}\n\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE\n\nfunction tabsequenceAreaAtImgPosition() {\n return result$3\n}\n\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition,\n}\n\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls,\n}\n\nfunction executeTests() {\n var results = detectFocus(testDescriptions)\n Object.keys(testCallbacks).forEach(function (key) {\n results[key] = testCallbacks[key]()\n })\n\n return results\n}\n\nvar supportsCache = null\n\nfunction _supports() {\n if (supportsCache) {\n return supportsCache\n }\n\n supportsCache = cache$1.get()\n if (!supportsCache.time) {\n cache$1.set(executeTests())\n supportsCache = cache$1.get()\n }\n\n return supportsCache\n}\n\nvar supports = void 0\n\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/\n\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports()\n }\n\n var validIntegerPattern = supports.focusTabindexTrailingCharacters\n ? validIntegerPatternWithTrailing\n : validIntegerPatternNoTrailing\n\n var element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context: context,\n })\n\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex')\n var hasTabIndex = element.hasAttribute('tabIndex')\n\n if (!hasTabindex && !hasTabIndex) {\n return false\n }\n\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement =\n element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg'\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false\n }\n\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true\n }\n\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex')\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false\n }\n\n return Boolean(tabindex && validIntegerPattern.test(tabindex))\n}\n\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null\n }\n\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex')\n var attributeName = hasTabindex ? 'tabindex' : 'tabIndex'\n\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10)\n return isNaN(tabindex) ? -1 : tabindex\n}\n\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\n\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || ''\n return Boolean(userModify && userModify.includes('write'))\n}\n\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y'),\n ].some(function (overflow) {\n return overflow === 'auto' || overflow === 'scroll'\n })\n}\n\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1\n}\n\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is
    or - this does *not*\n // happen for
    ,
    , …\n return false\n }\n\n if (\n parentNodeName &&\n parentNodeName !== 'div' &&\n parentNodeName !== 'span' &&\n !hasCssOverflowScroll(parentStyle)\n ) {\n return false\n }\n\n return (\n element.offsetHeight < element.scrollHeight ||\n element.offsetWidth < element.scrollWidth\n )\n}\n\nvar supports$1 = void 0\n\nfunction isFocusRelevantRules() {\n var _ref =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n context = _ref.context,\n _ref$except = _ref.except,\n except =\n _ref$except === undefined\n ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n }\n : _ref$except\n\n if (!supports$1) {\n supports$1 = _supports()\n }\n\n var element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context: context,\n })\n\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true\n }\n\n var nodeName = element.nodeName.toLowerCase()\n\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false\n }\n\n if (\n nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea'\n ) {\n return true\n }\n\n if (nodeName === 'legend' && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true\n }\n\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true\n }\n\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true\n }\n\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true\n }\n\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false\n }\n\n if (nodeName === 'object') {\n var svgType = element.getAttribute('type')\n if (!supports$1.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false\n } else if (\n !supports$1.focusObjectSwf &&\n svgType === 'application/x-shockwave-flash'\n ) {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false\n }\n }\n\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true\n }\n\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true\n }\n\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true\n }\n\n if (\n nodeName === 'audio' &&\n (supports$1.focusAudioWithoutControls || element.hasAttribute('controls'))\n ) {\n return true\n }\n\n if (\n nodeName === 'video' &&\n (supports$1.focusVideoWithoutControls || element.hasAttribute('controls'))\n ) {\n return true\n }\n\n if (supports$1.focusSummary && nodeName === 'summary') {\n return true\n }\n\n var validTabindex = isValidTabindex(element)\n\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the \n return (\n (validTabindex && supports$1.focusImgUsemapTabindex) ||\n supports$1.focusRedirectImgUsemap\n )\n }\n\n if (supports$1.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus and
    \n return true\n }\n\n if (supports$1.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus
    \n return true\n }\n\n var isSvgElement = nodeName === 'svg'\n var isSvgContent = element.ownerSVGElement\n var focusableAttribute = element.getAttribute('focusable')\n var tabindex = tabindexValue(element)\n\n if (\n nodeName === 'use' &&\n tabindex !== null &&\n !supports$1.focusSvgUseTabindex\n ) {\n // cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false\n }\n\n if (nodeName === 'foreignobject') {\n // can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex\n }\n\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true\n }\n\n if (\n (isSvgElement || isSvgContent) &&\n element.focus &&\n !supports$1.focusSvgNegativeTabindexAttribute &&\n tabindex < 0\n ) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false\n }\n\n if (isSvgElement) {\n return (\n validTabindex ||\n supports$1.focusSvg ||\n supports$1.focusSvgInIframe ||\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(\n supports$1.focusSvgFocusableAttribute &&\n focusableAttribute &&\n focusableAttribute === 'true'\n )\n )\n }\n\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true\n }\n\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true'\n }\n }\n\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true\n }\n\n var style = window.getComputedStyle(element, null)\n if (isUserModifyWritable(style)) {\n return true\n }\n\n if (\n supports$1.focusImgIsmap &&\n nodeName === 'img' &&\n element.hasAttribute('ismap')\n ) {\n // IE10-11 considers the in focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({ context: element }).some(function (\n parent\n ) {\n return (\n parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href')\n )\n })\n\n if (hasLinkParent) {\n return true\n }\n }\n\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a
    or a and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true\n }\n } else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n return true\n }\n }\n\n if (\n !except.flexbox &&\n supports$1.focusFlexboxContainer &&\n hasCssDisplayFlex(style)\n ) {\n // elements with display:flex are focusable in IE10-11\n return true\n }\n\n var parent = element.parentElement\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase()\n var parentStyle = window.getComputedStyle(parent, null)\n if (\n supports$1.focusScrollBody &&\n isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)\n ) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true\n }\n\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true\n }\n }\n }\n\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n\n return false\n}\n\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function () {\n var except =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}\n\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except,\n })\n }\n\n isFocusRelevant.rules = isFocusRelevantRules\n return isFocusRelevant\n}\n\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({})\n\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback)\n }\n\n var length = array.length\n\n // shortcut if the array is empty\n if (length === 0) {\n return -1\n }\n\n // otherwise loop over array\n for (var i = 0; i < length; i++) {\n if (callback(array[i], i, array)) {\n return i\n }\n }\n\n return -1\n}\n\nfunction getContentDocument(node) {\n try {\n // works on and